Push 要求を生成するには、サーバ起動同期に必要な Push 要求のカラムが対象となるデータベースに含まれている必要があります。また、単一のデータベースクエリを使用して値を取得できる必要もあります。Push 要求は、Push 要求のカラムを選択する request_cursor イベントでデータベースクエリを指定すると、自動的に生成されます。 Push 要求の要件の詳細については、Push 要求の要件を参照してください。
Mobile Link サーバが unique_device_ID として検出したリモートデバイスがあり、統合データベースに次の SQL 文を使用して作成された PushRequest という名前のテーブルが含まれるとします。
CREATE TABLE PushRequest ( req_id INTEGER DEFAULT AUTOINCREMENT PRIMARY KEY, poll_key VARCHAR(128), subject VARCHAR(128), content VARCHAR(128) ) |
この例では、Push 要求の準備に、統合データベースで次の SQL 文を実行します。
INSERT INTO PushRequest (poll_key, subject, content) VALUES ('unique_device_ID', 'synchronize', 'ASAP'); |
上記のスクリプトを使用して PushRequest テーブルに値を挿入しても、Push 要求自体は生成されません。Mobile Link サーバの request_cursor イベントでデータベースクエリを設定して、挿入する値を選択し、Push 要求を生成できるようにします。
この例では、Mobile Link サーバの request_cursor イベントスクリプトで次の SQL 文を定義します。
SELECT poll_key, subject, content FROM PushRequest; |
これで unique_device_ID デバイスがサーバに対して Push 通知をポーリングし、request_cursor イベントが PushRequest テーブルでデータを検出すると、Push 要求が生成されます。デバイスに送信されると、Push 通知の件名は synchronize と定義され、内容は ASAP と定義されます。
次の表は、Push 要求の制限事項をカラムごとに示します。
カラム | データ型 | 制限 |
---|---|---|
Request ID |
INTEGER |
この値は、ユニークなプライマリキーにしてください。 |
Poll key |
VARCHAR |
ライトウェイトポーラーの使用時にのみ必要です。 ポーリングキーには制限がありません。 |
Gateway |
VARCHAR |
ゲートウェイを使用する場合にのみ必要です。 この値には、有効なゲートウェイの名前を設定してください。独自のカスタムゲートウェイ名を指定するか、または次の事前に設定されたゲートウェイ名のいずれかを選択します。
ライトウェイトポーラーの代替としてのゲートウェイを参照してください。 |
Subject |
VARCHAR |
この値の設定では、英数字以外の文字を使用しないでください。中カッコ、カレット、二重引用符、一重引用符、角カッコは内部用に予約されているため、subject カラムで使用しないでください。 |
Content |
VARCHAR |
メッセージの内容には制限がありません。 |
Address |
VARCHAR |
ゲートウェイを使用する場合にのみ必要です。 UDP ゲートウェイの場合、この値は IP アドレスまたはホスト名にしてください。次のフォーマットのポート番号のサフィックスがサポートされています。
SMTP ゲートウェイの場合、この値は電子メールアドレスにしてください。 SYNC ゲートウェイとデバイストラッキングゲートウェイの場合、この値は Mobile Link Listener -t+ オプションで定義されている受信者名にしてください。 -t dblsn オプションを参照してください。 |
Resend interval |
VARCHAR |
デフォルトでは、この値は分単位で測定されます。秒、分、時間それぞれの単位として S、M、H を指定できます。また、単位を組み合わせることもできます。たとえば、 この値が NULL または未指定の場合、デフォルトでは一度だけ送信され、再送は行われません。 |
Time to live |
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 カラムが含まれている必要があります。また、配信確認を有効にしてください。
次の項を参照してください。
![]() |
DocCommentXchange で意見交換できます
|
Copyright © 2013, SAP AG or an SAP affiliate company. - SAP Sybase SQL Anywhere 16.0 |