Push 要求を生成するには、サーバ起動同期に必要な Push 要求のカラムが対象となるデータベースに含まれている必要があります。また、単一のデータベース・クエリを使用して値を取得できる必要もあります。Push 要求は、Push 要求のカラムを選択する request_cursor イベントでデータベース・クエリを指定すると、自動的に生成されます。Push 要求の要件の詳細については、Push 要求の要件を参照してください。
統合データベース内に、ライトウェイト・ポーラ用の Push 要求を含むテーブル PushRequest が含まれています。リモート・デバイスは、Mobile Link サーバで unique_device_ID として識別されます。このサーバでは、次の SQL スクリプトを使用して同期を要求します。
INSERT INTO PushRequest (poll_key, subject, content) VALUES ('unique_device_ID', 'synchronize', 'ASAP'); |
このスクリプトを使用して値を挿入しても、Push 要求は生成されません。値は、request_cursor イベントでデータベース・クエリを使用して選択してください。Push 要求を生成するには、サーバで次の request_cursor イベント・スクリプトを使用します。
SELECT poll_key, subject, content FROM PushRequest; |
unique_device_ID デバイスによって Push 通知のサーバがポーリングされると、Push 要求が生成されます。Push 通知の件名は synchronize で、内容は ASAP です。
次の表は、Push 要求の制限事項をカラムごとに示します。
カラム |
型 |
制限 |
---|---|---|
[要求 ID] |
INTEGER |
この値は、ユニークなプライマリ・キーにしてください。 |
ポーリング・キー |
VARCHAR |
ライトウェイト・ポーラの使用時にのみ必要です。 ポーリング・キーには制限がありません。 |
ゲートウェイ |
VARCHAR |
ゲートウェイを使用する場合にのみ必要です。 この値には、有効なゲートウェイの名前を設定してください。独自のカスタム・ゲートウェイ名を指定するか、または次の事前に設定されたゲートウェイ名のいずれかを選択します。
ライトウェイト・ポーラの代わりにゲートウェイを使用するを参照してください。 |
このマニュアルの内容 |
VARCHAR |
この値の設定では、英数字以外の文字を使用しないでください。中カッコ、カレット、二重引用符、一重引用符、角カッコは内部用に予約されているため、subject カラムで使用しないでください。 |
content |
VARCHAR |
メッセージの内容には制限がありません。 |
address |
VARCHAR |
ゲートウェイを使用する場合にのみ必要です。 UDP ゲートウェイの場合、この値は IP アドレスまたはホスト名にしてください。次のフォーマットのポート番号のサフィックスがサポートされています。
SMTP ゲートウェイの場合、この値は電子メール・アドレスにしてください。 SYNC ゲートウェイとデバイス・トラッキング・ゲートウェイの場合、この値は Listener -t+ オプションで定義されている受信者名にしてください。-t オプションを参照してください。 |
再送間隔 |
VARCHAR |
デフォルトでは、この値は分単位で測定されます。秒、分、時間それぞれの単位として S、M、H を指定できます。また、単位を組み合わせることもできます。たとえば、 この値が NULL または未指定の場合、デフォルトでは一度だけ送信され、再送は行われません。 |
存続期間 |
VARCHAR |
デフォルトでは、この値は分単位で測定されます。秒、分、時間それぞれの単位として S、M、H を指定できます。また、単位を組み合わせることもできます。たとえば、 この値が NULL または未指定の場合、デフォルトでは一度だけ送信され、再送は行われません。 |
Notifier では、request_cursor イベントを頻繁に起動することによって、Push 要求を検出します。デフォルトでは、このイベントにはスクリプトが指定されていません。Notifier が Push 要求を検出できるよう、request_cursor イベントを指定してください。典型的なアプリケーションでは、request_cursor イベント・スクリプトは SELECT 文です。request_cursor イベントを参照してください。
次の例では、ml_add_property システム・プロシージャを使用して、Simple という名前のカスタム Notifier 用の request_cursor イベント・スクリプトを作成します。SELECT 文は、テーブル PushRequest から Push 要求を検出するよう Notifier に通知します。
CALL ml_add_property('SIS', 'Notifier(Simple)', 'request_cursor', 'SELECT poll_key, subject, content FROM PushRequest' ); |
カラムは、Push 要求で指定されている順序と同じ順序で選択してください。Push 要求の要件を参照してください。
Notifier イベントの設定については、サーバ起動同期の Mobile Link サーバ設定を参照してください。
Push 通知がビジネス規則を満たし、この規則に従って送信された後に通知されたデバイスの情報が更新されない場合、Notifier は通知を再送します。Push 要求が満たされたら、Notifier で古い Push 要求が検出されないようにする必要があります。同期目的で Push 通知が送信された場合は、同期スクリプトを使用して Push 要求を削除できます。
request_delete イベントを使用して要求 ID ごとに Push 要求を削除できますが、Push 要求に request ID カラムが含まれている必要があります。また、配信確認を有効にしてください。
配信確認は Palm デバイスでは使用できませんが、独自の配信確認メカニズムを実装して Push 要求を削除できます。たとえば、独自の同期論理を使用すると、特定の同期が発生した場合に Push 要求を削除できます。配信確認の無効化の詳細については、Windows 用の Listener キーワードを参照してください。
次の項を参照してください。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |