Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 12.0.1 (Deutsch) » QAnywhere » QAnywhere-Nachrichtenspeicher » Lokale Nachrichtenspeicher

 

Den lokalen Nachrichtenspeicher einrichten

Der lokale Nachrichtenspeicher erfordert die Installation von QAnywhere. QAnywhere befindet sich im SQL Anywhere-Installationsprogramm unter der Funktion "Synchronisation und Messaging". Um das Messaging in Ihrer SQL Anywhere-Datenbank zu aktivieren, müssen Sie das QAnywhere-Schema in Ihrer SQL Anywhere-Datenbank installieren, damit sie als lokaler Nachrichtenspeicher verwendet werden kann. Für diesen Zweck wird die Option -sil des QAnywhere Agent für SQL Anywhere verwendet. Die Option -sil weist den Agenten an, die Datenbank als lokalen Nachrichtenspeicher zu initialisieren. Der Agent wird einfach zur Initialisierung eines lokalen Nachrichtenspeichers verwendet und nicht weiter benötigt. Alle in der Datenbank erstellten QAnywhere-Objekte gehören zum Eigentümer ml_qa_message_group. Sobald Ihre SQL Anywhere-Datenbank als lokaler Nachrichtenspeicher initialisiert wurde, können Anwendungen die QAnywhere-Client-API zum Austauschen von Nachrichten verwenden.

 Erstellen eines lokalen Nachrichtenspeichers (.NET-Beispiel)
  1. Erstellen Sie eine SQL Anywhere-Datenbank. Sie können diesen Schritt auslassen, wenn Sie vorhaben, eine vorhandene SQL Anywhere-Datenbank zu verwenden.

    dbinit localmsgstore.db
  2. Installieren Sie das QAnywhere-Schema in der SQL Anywhere-Datenbank, damit sie als lokaler Nachrichten-Bus verwendet werden kann:

    qaagent -sil -c "dbf=localmsgstore.db;uid=dba;pwd=sql"
  3. Erstellen Sie eine Absender-Anwendung, um Nachrichten im Nachrichtenspeicher abzulegen. Hinweise zur Arbeit mit der .NET-Version der QAnywhere-Client-API finden Sie unter QAnywhere-.NET-API-Referenz für Clients.



    using System;
    using System.IO;
    using iAnywhere.QAnywhere.Client;
    namespace sender
    {
    class sender
        {
            public static void Main() {
                try {
                    // QAnywhere initialization
                    QAManager mgr = QAManagerFactory.Instance.CreateQAManager();
                    // Be sure to set the DATABASE_TYPE property
                    mgr.SetProperty( "DATABASE_TYPE", "sqlanywhere" );
                    mgr.SetProperty( "CONNECT_PARAMS", "dbf=localmsgstore.db;uid=dba;pwd=sql" );
                    mgr.Open( AcknowledgementMode.IMPLICIT_ACKNOWLEDGEMENT );
                    mgr.Start();
                    // Create a text message
                    QATextMessage msg = mgr.CreateTextMessage();
                    msg.Text = "Sample text";
                    // Queue the message
                    mgr.PutMessage( "dbqueue", msg );
                    // QAnywhere finalization
                    mgr.Stop();
                    mgr.Close();
                    } catch( Exception exc ) {
                    Console.WriteLine( exc.Message );
                }
            }
        }
    }
  4. Kompilieren Sie das Programm, indem Sie Folgendes in der Befehlszeile eingeben. Sie müssen Visual Studio auf Ihrem Computer installiert haben.

    csc /reference:"%SQLANY12%\Assembly\v2\iAnywhere.QAnywhere.Client.dll" sender.cs
  5. Erstellen Sie eine Empfänger-Anwendung, um Nachrichten aus dem Nachrichtenspeicher abzurufen. Hinweise zur Arbeit mit der .NET-Version der QAnywhere-Client-API finden Sie unter QAnywhere-.NET-API-Referenz für Clients.



    using System;
    using System.IO;
    using iAnywhere.QAnywhere.Client;
    namespace receiver
    {
    class receiver
    {
    public static void Main() {
    try {
    // QAnywhere initialization
    QAManager mgr = QAManagerFactory.Instance.CreateQAManager();
    // Be sure to set the DATABASE_TYPE property
    mgr.SetProperty( "DATABASE_TYPE", "sqlanywhere" );
    mgr.SetProperty( "CONNECT_PARAMS", "dbf=localmsgstore.db;uid=dba;pwd=sql" );
    mgr.Open( AcknowledgementMode.IMPLICIT_ACKNOWLEDGEMENT );
    mgr.Start();
    // Get the message
    QATextMessage msg = (QATextMessage)mgr.GetMessage( "dbqueue" );
    // Display the text
    Console.WriteLine( msg.Text );
    // QAnywhere finalization
    mgr.Stop();
    mgr.Close();
    } catch( Exception exc ) {
    Console.WriteLine( exc.Message );
    }
    }
    }
    }
  6. Kompilieren Sie das Programm, indem Sie Folgendes in der Befehlszeile eingeben. Sie müssen Visual Studio auf Ihrem Computer installiert haben.

    csc /reference:"%SQLANY12%\Assembly\v2\iAnywhere.QAnywhere.Client.dll" receiver.cs
  7. Starten Sie die SQL Anywhere-Datenbank:

    dbsrv12 localmsgstore.db
  8. Führen Sie die Absender-Anwendung aus.

    sender
  9. Führen Sie die Empfänger-Anwendung aus.

    receiver

    Die Zeichenfolge "Sample Text" wird angezeigt.

 Erstellen eines lokalen Nachrichtenspeichers (Java-Beispiel)
  1. Erstellen Sie eine SQL Anywhere-Datenbank. Sie können diesen Schritt auslassen, wenn Sie vorhaben, eine vorhandene SQL Anywhere-Datenbank zu verwenden.

    dbinit localmsgstore.db
  2. Installieren Sie das QAnywhere-Schema in der SQL Anywhere-Datenbank, damit sie als Nachrichten-Bus verwendet werden kann:

    qaagent -sil -c "dbf=localmsgstore.db;uid=dba;pwd=sql"
  3. Erstellen Sie eine Absender-Anwendung, um Nachrichten im Nachrichtenspeicher abzulegen. Hinweise zur Arbeit mit der .NET-Version der QAnywhere-Client-API finden Sie unter QAnywhere-Java-API-Referenz für Clients.



    import java.util.*;
    import ianywhere.qanywhere.client.*;
    public class sender
    {
    public static void main( String [] args ) {
    try {
    // QAnywhere initialization
    QAManager mgr = QAManagerFactory.getInstance().createQAManager();
    // Be sure to specify the DATABASE_TYPE
    mgr.setProperty( "DATABASE_TYPE", "sqlanywhere" );
    mgr.setProperty( "CONNECT_PARAMS", "dbf=localmsgstore.db;uid=dba;pwd=sql" );
    mgr.open( AcknowledgementMode.IMPLICIT_ACKNOWLEDGEMENT );
    mgr.start();
    // Create a text message
    QATextMessage msg = mgr.createTextMessage();
    msg.setText( "Sample text" );
    // Queue the message
    mgr.putMessage( "dbqueue", msg );
    // QAnywhere finalization
    mgr.stop();
    mgr.close();
    } catch( Exception exc ) {
    System.out.println( exc.getMessage() );
    }
    }
    }
  4. Kompilieren Sie das Programm, indem Sie Folgendes in der Befehlszeile eingeben. Sie müssen das Java JDK auf Ihrem Computer installiert haben.

    javac  -cp "%SQLANY12%\java\qaclient.jar" sender.java
  5. Erstellen Sie eine Empfänger-Anwendung, um Nachrichten aus dem Nachrichtenspeicher abzurufen. Hinweise zur Arbeit mit der Java-Version der QAnywhere-Client-API finden Sie unter QAnywhere-Java-API-Referenz für Clients.



    import java.util.*;
    import ianywhere.qanywhere.client.*;
    public class receiver
    {
    public static void main( Strings [] args ) {
    try {
    // QAnywhere initialization
    QAManager mgr = QAManagerFactory.getInstance().createQAManager();
    // Be sure to set the DATABASE_TYPE property.
    mgr.setProperty( "DATABASE_TYPE", "sqlanywhere" );
    mgr.setProperty( "CONNECT_PARAMS", "dbf=localmsgstore.db;uid=dba;pwd=sql" );
    mgr.open( AcknowledgementMode.IMPLICIT_ACKNOWLEDGEMENT );
    mgr.start();
    // Get the message
    QATextMessage msg = (QATextMessage)mgr.getMessage( "dbqueue" );
    // Display the text
    System.out.println( msg.getText() );
    // QAnywhere finalization
    mgr.stop();
    mgr.close();
    } catch( Exception exc ) {
    System.out.println( exc.getMessage() );
    }
    }
    }
  6. Kompilieren Sie das Programm, indem Sie Folgendes in der Befehlszeile eingeben. Sie müssen das Java JDK auf Ihrem Computer installiert haben.

    javac -cp "%SQLANY12%\java\qaclient.jar" receiver.java
  7. Starten Sie die SQL Anywhere-Datenbank:

    dbsrv12 localmsgstore.db
  8. Führen Sie die Absender-Anwendung aus.

    java -cp ".\;%SQLANY12%\java\qaclient.jar;%SQLANY12%\java\jodbc.jar" sender
  9. Führen Sie die Empfänger-Anwendung aus.

    java -cp ".\;%SQLANY12%\java\qaclient.jar;%SQLANY12%\java\jodbc.jar" receiver

    Die Zeichenfolge "Sample Text" wird angezeigt.

 Den Nachrichtenspeicher bereinigen
 Nachrichten anzeigen