Eigenschaften für Client-Nachrichtenspeicher können von Ihnen definierte Attribute enthalten. Ein Attribut wird definiert, indem Sie einen Punkt hinter den Eigenschaftsnamen setzen, gefolgt vom Attributnamen. Diese Funktion wird meistens verwendet, damit Informationen zu Ihrem Netzwerk in Ihren Übertragungsregeln eingesetzt werden können.
Für Property-Attribute wird begrenzte Unterstützung bereitgestellt, wenn UltraLite als Client-Nachrichtenspeicher verwendet wird. UltraLite-Nachrichtenspeicher unterstützen nur die vordefinierte Eigenschaft ias_Network.
Nachstehend finden Sie ein einfaches Beispiel für die Definition von benutzerdefinierten Eigenschaftsattributen für Client-Nachrichtenspeicher. Im folgenden Beispiel hat die Objekteigenschaft zwei Attribute: Shape (Form) und Color (Farbe). Der Wert des Form-Attributs ist "Round" und der Wert des Farb-Attributs ist "Blue".
// C++ example. mgr->setStringStoreProperty( "Object.Shape", "Round" ); mgr->setStringStoreProperty( "Object.Color", "Blue" ); |
// C# example. mgr.SetStoreStringProperty( "Object.Shape", "Round" ); mgr.SetStringStoreProperty( "Object.Color", "Blue" ); |
// Java example mgr.setStringStoreProperty( "Object.Shape", "Round" ); mgr.setStringStoreProperty( "Object.Color", "Blue" ); |
-- SQL example BEGIN CALL ml_qa_setstoreproperty( 'Object.Shape', 'Round' ); CALL ml_qa_setstoreproperty( 'Object.Color', 'Blue' ); COMMIT; END |
Alle Client-Nachrichtenspeichereigenschaften haben ein Typ-Attribut, das anfangs keinen Wert hat. Der Wert des Typ-Attributs muss der Name einer anderen Eigenschaft sein. Wenn das Typ-Attribut einer Eigenschaft gesetzt wird, erbt die Eigenschaft die Attribute der Eigenschaft, die ihr zugeordnet wird. Im folgenden Beispiel erbt die Objekteigenschaft die Attribute der Circle-(Kreis-)Eigenschaft. Daher lautet der Wert von Object.Shape "Round", und der Wert von Object.Color "Blue".
// C++ example QAManager qa_manager; qa_manager->setStoreStringProperty( "Circle.Shape", "Round" ); qa_manager->setStoreStringProperty( "Circle.Color", "Blue" ); qa_manager->setStoreStringProperty( "Object.Type", "Circle" ); |
// C# example QAManager qa_manager; qa_manager.SetStringStoreProperty( "Circle.Shape", "Round" ); qa_manager.SetStringStoreProperty( "Circle.Color", "Blue" ); qa_manager.SetStringStoreProperty( "Object.Type", "Circle" ); |
// Java example QAManager qa_manager; qa_manager.setStringStoreProperty( "Circle.Shape", "Round" ); qa_manager.setStringStoreProperty( "Circle.Color", "Blue" ); qa_manager.setStringStoreProperty( "Object.Type", "Circle" ); |
-- SQL example BEGIN CALL ml_qa_setstoreproperty( 'Circle.Shape', 'Round' ); CALL ml_qa_setstoreproperty( 'Circle.Color', 'Blue' ); CALL ml_qa_setstoreproperty( 'Object.Type', 'Circle'); COMMIT; END |
Das folgende C#-Beispiel zeigt, wie Sie Nachrichtenspeichereigenschaften verwenden können, um Informationen zu Ihrem Netzwerk an die Übertragungsregeln zu übergeben.
Gesetzt den Fall, Sie haben einen Windows-Laptop, der die folgenden Netzwerk-Systemanbindungsoptionen hat: LAN, Wireless LAN und Wireless WAN. Der Zugriff auf das Netzwerk über LAN wird durch eine Netzwerkkarte namens "My LAN Card" ermöglicht. Der Zugriff auf das Netzwerk über W-LAN wird durch eine Netzwerkkarte namens "My Wireless LAN Card" hergestellt. Der Zugriff auf das Netzwerk über W-WAN wird durch eine Netzwerkkarte namens "My Wireless WAN Card" erreicht.
Angenommen, Sie möchten eine Messaging-Anwendung entwickeln, die beim Start der Verbindung über LAN oder W-LAN alle Nachrichten an den Server sendet und nur Nachrichten von hoher Priorität beim Start der Verbindung über das W-WAN übermittelt. Sie definieren Nachrichten hoher Priorität als solche, deren Priorität größer oder gleich 7 ist.
Zuerst ermitteln Sie die Namen Ihrer Netzwerkadapter. Die Namen der Netzwerkadapter werden unveränderlich festgelegt, wenn die Karte eingesteckt und der Treiber installiert wird. Um den Namen einer bestimmten Netzwerkkarte herauszufinden, verbinden Sie sich mit dem Netzwerk durch diese Karte und führen qaagent mit der Option -vn aus. Der QAnywhere Agent zeigt den Netzwerkkartennamen folgendermaßen an:
"Listener thread received message '[netstat] Netzwerkkartenname !...' |
Danach legen Sie drei Client-Nachrichtenspeichereigenschaften für jeden Netzwerktyp fest: LAN, WLAN und WWAN. Jeder dieser Eigenschaften wird ein Cost-Attribut (Kosten) zugeordnet. Das Cost-Attribut ist ein Wert zwischen 1 und 3 und stellt die Kosten dar, die auftreten, wenn das Netzwerk verwendet wird. Ein Wert von 1 stellt die geringsten Kosten dar.
QAManager qa_manager; qa_manager.SetStoreProperty( "LAN.Cost", "1" ); qa_manager.SetStoreProperty( "WLAN.Cost", "2" ); qa_manager.SetStoreProperty( "WWAN.Cost", "3" ); |
Jetzt legen Sie drei Eigenschaften des Client-Nachrichtenspeichers fest, eine für jede verwendete Netzwerkkarte. Der Eigenschaftsname muss mit dem Netzwerkkartennamen übereinstimmen. Ordnen Sie die entsprechende Netzwerkklassifizierung jeder Eigenschaft zu, indem Sie den Netzwerktyp dem Typ-Attribut zuordnen. Jede Eigenschaft erbt daher die Attribute des ihr zugeordneten Netzwerktyps.
QAManager qa_manager; qa_manager.SetStoreProperty( "My LAN Card.Type", "LAN" ); qa_manager.SetStoreProperty( "My Wireless LAN Card.Type", "WLAN" ); qa_manager.SetStoreProperty( "My Wireless WAN Card.Type", "WWAN" ); |
Wenn die Netzwerk-Systemanbindung hergestellt ist, definiert QAnywhere abhängig vom verwendeten Netzwerk automatisch die Adapter-Attribute der ias_Network-Eigenschaft als My LAN Card, My Wireless LAN Card oder My Wireless WAN Card. Auf gleiche Weise wird das Typattribut der ias_Network-Eigenschaft auf My LAN Card, My Wireless LAN Card oder My Wireless WAN Card eingestellt, damit die ias_Network-Eigenschaft die Attribute des verwendeten Netzwerks erbt.
Abschließend erstellen Sie die nachstehende Übertragungsregel.
automatic=ias_Network.Cost < 3 or ias_Priority >= 7 |
Weitere Hinweise zu Übertragungsregeln finden Sie unter QAnywhere-Übertragungs- und Löschregeln.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |