Message Transmission API
Message Transmission APIは、プロデューサ経由のメッセージの送信およびコンシューマ経由のメッセージの受信のためのインタフェースを、トランザクションなどの高度なメッセージング機能も含めて提供します。 Message Transmission APIは、メッセージング・コンテキスト、接続、セッション、永続サブスクリプション、一時宛先およびキュー・ブラウザを作成および管理する機能も備えています。
トピック:
メッセージング・コンテキストの作成および管理
この項では、Oracle Messaging Cloud Serviceのメッセージング・コンテキストの作成および管理に関する情報を提供します。
トピック:
メッセージング・コンテキストの作成
メッセージング・コンテキストは接続、セッション、プロデューサ、コンシューマ、一時宛先およびキュー・ブラウザなどの一時オブジェクトのコンテナです。
メッセージング・コンテキストの作成は暗黙的な操作です。 これは、認証を渡すOracle Messaging Cloud Serviceへの最初のアクセスによって作成されます。 Oracle Messaging Cloud Serviceにアクセスするには、少なくとも1つのメッセージング・コンテキストをクライアントで作成する必要があります。 新規メッセージング・コンテキストが作成されると、HTTPレスポンスにはヘッダーX-OC-NEW-MESSAGING-CONTEXT: trueが含まれます。 既存のメッセージング・コンテキストは、HTTPリクエストでJSESSIONID Cookieによって識別されます。 HTTPリクエストにJSESSIONID cookieが含まれていない場合、またはHTTPリクエストに期限切れのメッセージング・コンテキスト用のJSESSIONID cookieが含まれている場合は、新しいメッセージング・コンテキストが作成されます。 メッセージング・コンテキストの詳細は、「メッセージング・コンテキストとHTTP Cookie」を参照してください。
REST APIで作成された各メッセージング・コンテキストには、関連付けられている非アクティブ最大間隔 (MII)があります。 メッセージング・コンテキストは、関連付けられているMIIよりも長い期間、アクセスされない場合に期限切れになります。
非アクティブ最大間隔(MII)の取得
この項では、サービスまたはサービス・インスタンスで設定可能な最大MIIの取得に関する情報を提供します。
メソッド: GET
パス: /maxInactiveInterval
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 現在のMIIと許可されている最大のMIIの情報が返されます。
レスポンス・ヘッダー:
-
X-OC-MII:正の整数(秒)現在のMIIの値を示します。
-
X-OC-MAX-MII:正の整数(秒)サービスまたはサービス・インスタンスによる設定が許可されている最大のMIIが示されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
クライアントIDを取得しようとして低レベルの例外が発生しました。 |
非アクティブ最大間隔(MII)の設定
この項では、最大非アクティブ間隔(MII)の設定に関する情報を提供します。
メソッド: POST
パス: /maxInactiveInterval
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
値は負数ではない整数で、クライアントがMIIを設定する対象の秒数として解釈される必要があります。 |
結果: リクエスト内のmiiの値が整数の場合は、MIIはその値(または、値が900を上回る場合は900)に設定されます。 これが0の場合は、メッセージング・コンテキストはすぐに期限切れになり、削除されます。
注意:
0という値は無限大を意味しません。 クライアントはメッセージング・コンテキストを期限切れなしに設定しない可能性があります。
レスポンス・ヘッダー:
-
X-OC-MII:正の整数(秒)リクエストされたMIIが正数だった場合、これは非アクティブ最大間隔の新規の値であり、送信された値を下回る場合があります。 最大値は900秒です。
-
X-OC-MAX-MII:正の整数(秒)サービスまたはサービス・インスタンスによる設定が許可されている最大のMIIが示されます。 許可されている最大のMIIは900秒です。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
低レベルの例外が発生しました。 |
接続の作成および管理
クライアントはクライアントIDを接続と関連付けることができます。 クライアントIDは、サブスクリプション名とともに、永続サブスクリプションをトピックに対して識別する文字列です。 トピックで永続コンシューマを作成する際、接続で設定されたクライアントIDは、永続サブスクリプションを識別するためにコンシューマ作成メソッドで指定されたサブスクリプション名とともに使用されます。
InvalidClientIDExceptionエラーが生成される接続でクライアントIDを設定しようとすると、exceptionClassの接続は不安定になります。 このようなエラー・レスポンスを受け取る接続は閉じる必要があります。
トピック:
接続の作成
このトピックでは、接続の作成に関する情報を提供します。
メソッド: PUT
パス: /connections/connectionName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
オプション。 この値はクライアントが接続で設定するクライアントIDです。 |
|
|
オプション。 接続を開始するには、 |
結果: 名前connectionNameで接続を作成します。 接続は作成されるときに停止されます(接続を作成するためにstartアクションがPUTリクエストで指定されている場合を除く)。
レスポンス本文:
接続を作成するためのXMLのレスポンス本文は次のとおりです。
<connection>
<metadata>
<JMSXPropertyNames>
<items>JMSXDeliveryCount</items>
<items>JMSXGroupID</items>
<items>JMSXGroupSeq</items>
</JMSXPropertyNames>
</metadata>
<canonicalLink>relative path to newly created connection</canonicalLink>
</connection>サポートされている各JMSXプロパティ名は<items>要素でリストされています。
接続を作成するためのJSONのレスポンス本文は次のとおりです。
{
"metadata":
{
"JMSXPropertyNames":
[
"JMSXDeliveryCount",
"JMSXGroupID",
"JMSXGroupSeq"
]
}
"canonicalLink": "relative path to newly created connection"
}詳細は、次のリンクを参照してください:
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
接続のクライアントIDに対して指定されている値が、JMSプロバイダによって拒否されます。 |
|
|
指定された名前の接続はすでに存在します。 |
|
|
サービス・インスタンスに許可される接続数の判別中に内部エラーが発生しました。 |
|
|
サービス・インスタンスは、クラウドの単一の仮想マシンで作成できる接続数を超えています。 通常これは、サービス・インスタンスが最大許容接続数に達しているか、超えてさえいることを意味します。 |
|
|
クライアントIDを取得しようとして低レベルの例外が発生しました。 |
接続プロパティの更新
この項では、接続プロパティの更新に関する情報を提供します。
メソッド: POST
パス: /connections/connectionName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
オプション。 この値はクライアントが接続で設定するクライアントIDです。 |
|
|
オプション。 接続を開始するには、 |
結果: clientIdパラメータが存在する場合、次の阻止条件がいずれもtrueでなければ、接続のクライアントIDは指定された値に設定されます:
-
クライアントIDがすでに接続の値に設定されています。
-
接続が、作成されたときに開始されました。
-
接続がいずれかの操作に使用されています。
-
クライアントIDが他のアプリケーションで使用中です。
阻止条件のいずれかがtrueの場合、400エラー・レスポンスが生成されます。
注意:
REST APIクライアントがクライアントIDを接続で設定する場合、その接続が存在するかぎり、他の接続が同じクライアントIDをそこに設定することはできなくなります。 結果として、他の接続がそのクライアントIDの永続サブスクリプションを作成、削除または消費することはできません。 たとえば、次の状況で考えてみます:
-
クライアントに障害が発生するか、クライアントIDによる接続が含まれるメッセージング・コンテキストを識別する
JSESSIONIDHTTP Cookieの値を失います。 -
クライアントIDを使用する接続を削除することも、その接続が含まれるメッセージング・コンテキストのMIIを0に設定することでメッセージング・コンテキストが期限切れになることもなく、クライアントが終了します。
これらのケースはいずれも、メッセージング・コンテキストが期限切れになるまで、どのクライアントも指定されたクライアントIDで新規の接続を作成できません。 これらの状況を避けるため、接続でクライアントIDを設定するREST APIクライアントは次の作業を行う必要があります:
-
クライアントIDによる接続が含まれるメッセージング・コンテキストのMIIを最小可能値に設定することで、クライアントに障害が発生するか、
JSESSIONIDHTTP Cookieの値を失った場合に、クライアントIDを再利用できるまでの時間が最小になるようにします。 -
接続リソースで明示的に
DELETEを実行するか、接続が含まれるメッセージング・コンテキストのMIIを0に設定することで(これによってコンテキスト内のすべての接続が終了します)、終了前にクライアントIDによる接続を削除します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
接続のクライアントIDに対して指定されている値が、JMSプロバイダによって拒否されます。 clientIdの値が他のアプリケーション(メッセージ・プッシュ・リスナーを含む)で使用されている可能性があります。 |
|
|
リクエストされた接続は存在しません。 |
|
|
すでに設定済か、クライアントIDがすでに設定できない状態の後で操作が実行されている(例: 接続の開始、セッションの作成)かのいずれかの理由で設定が不可能な接続で、クライアントIDを設定しようとしました。 |
|
|
クライアントIDを取得しようとして低レベルの例外が発生したか、その値が拒否されました。 |
セッションの作成および管理
メッセージをMessage Transmission APIによって送信または受信できるようになるには、接続とセッションを作成する必要があります。 セッションは、メッセージがクライアントとOracle Messaging Cloud Service間で送信および受信されることの意味を定義する、動作コンテキストを提供します。
トピック:
セッションの作成
このトピックでは、セッションの作成に関する情報を提供します。
メソッド: PUT
パス: /sessions/sessionName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
セッションの作成に使用される接続の名前を指定します。 |
|
|
オプション。 存在する場合は、値 |
|
|
オプション。 存在する場合は、値 |
結果: セッションを作成します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
|
|
|
指定された名前のセッションはすでに存在します。 |
|
|
|
|
|
セッションの作成中に低レベルの例外がスローされました。 |
セッションの承認、コミット、ロールバックまたはリカバリ
このトピックでは、セッションの承認、コミット、ロールバックの実行またはリカバリに関する情報を提供します。
メソッド: POST
パス: /sessions/sessionName/state
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
必須。 値は |
結果: 指定された操作を実行します。 アクションがacknowledgeまたはrecoverであり、セッションが自動的に(確認モードautoまたはdups_okのいずれかを使用して)メッセージを確認応答するように設定されている場合、これはノー・オペレーションです。 アクションがcommitまたはrollbackで、セッションが処理済でない場合、これは無処理です。 アクションがrecoverで、セッションが処理済の場合、500エラー・レスポンスが生成されます。
HTTPリクエスト/レスポンスのシーケンスの例については、「トランザクションを使用したメッセージの処理」を参照してください。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
actionパラメータの値が |
|
|
指定された名前のセッションはありません。 |
|
|
指定されたアクションを指定されたセッションで実行しようとして低レベルの例外がスローされました。 |
永続サブスクリプションの削除
このトピックでは、永続サブスクリプションの削除に関する情報を提供します。
メソッド: DELETE
パス: /sessions/sessionName/subscriptions/subscriptionName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: クライアントIDが接続で設定されているIDで、名前がパスで指定されている名前のサブスクリプションを削除します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
パスで指定されたセッションは存在しません。 |
|
|
サブスクリプションはコンシューマを持っています。 |
|
|
パスで指定されたサブスクリプションは存在しません。 |
|
|
サブスクリプションを削除しようとして低レベルの例外がスローされました。 |
セッションのクローズおよび削除
このトピックでは、セッションのクローズおよび削除に関する情報を提供します。
メソッド: DELETE
パス: /sessions/sessionName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 名前sessionNameのセッションがクローズして削除されます。 セッションに関連付けられたプロデューサ、コンシューマおよびキュー・ブラウザもすべて暗黙的にクローズして削除されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
指定された名前のセッションはありません。 |
|
|
指定されたセッションをクローズおよび削除しようとして低レベルの例外がスローされました。 |
メッセージの送信
この項では、REST APIを使用したメッセージの送信に関する情報を提供します。
トピック:
メッセージを宛先に送信するHTTPリクエストの例については、「メッセージのトピックへの送信」を参照してください。
プロデューサの作成
このトピックでは、プロデューサの作成に関する情報を提供します。
メソッド: PUT
パス: /producers/producerName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
必須。 この値はプロデューサを作成するためのセッションの名前です。 |
|
|
オプション。 存在する場合、値は次のいずれかのフォームを取る必要があります:
プロデューサ経由で送信されるメッセージのデフォルトの宛先を指定します。 このパラメータが省略される場合、メッセージの送信先の宛先は、このプロデューサ経由で実行される各送信操作でパラメータとして指定する必要があります。 |
|
|
オプション。 存在する場合、値は 注意: このパラメータの値はサービスに対するヒントで、値は無視される可能性があります。 |
|
|
オプション。 存在する場合、値は |
|
|
オプション。 存在する場合、値は厳密に正のlong型整数または値 |
結果: プロデューサを作成します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
次のいずれかが発生しました:
|
|
|
プロデューサを作成するためのセッションは存在しません。 |
|
|
プロデューサに指定されたデフォルトの宛先は存在しません。 |
|
|
指定された名前のプロデューサはすでに存在します。 |
|
|
|
|
|
プロデューサを作成しようとして低レベルの例外がスローされました。 |
プロデューサのプロパティの設定
この項では、プロデューサのプロパティの設定に関する情報を提供します。
メソッド: POST
パス: /producers/producerName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
オプション。 存在する場合、値は 注意: このパラメータの値はサービスに対するヒントで、値は無視される可能性があります。 |
|
|
オプション。 存在する場合、値は |
|
|
オプション。 存在する場合、値は厳密な正の長整数または値 |
結果: パラメータに関連付けられたプロパティが、すべての存在するパラメータに対して指定された値に設定されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
次のいずれかが発生しました:
|
|
|
変更するために指定されたプロデューサは存在しません。 |
|
|
|
|
|
プロデューサを変更しようとして低レベルの例外がスローされました。 |
プロデューサのクローズおよび削除
このトピックでは、プロデューサのクローズおよび削除に関する情報を提供します。
メソッド: DELETE
パス: /producers/producerName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 名前producerNameのプロデューサをクローズして削除します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
クローズおよび削除するために指定されたプロデューサは存在しません。 |
|
|
プロデューサをクローズおよび削除しようとして低レベルの例外がスローされました。 |
メッセージのプロデューサ経由の送信
この項では、プロデューサを介したメッセージの送信に関する情報を提供します。
メソッド: POST
パス: /producers/producerName/messages
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: HTTPヘッダーで指定されたメッセージと、後述のように指定された宛先へのリクエスト本文を送信します。
リクエスト・パラメータ、ヘッダーおよびリクエスト本文の説明は「RESTクライアントからメッセージを送信するHTTPリクエストのプロパティ」にあり、リクエスト・パラメータの次のような差異を示します:
| パラメータ | 説明 |
|---|---|
|
|
このヘッダーのデフォルト値はプロデューサによって定義されます。 |
|
|
このヘッダーのデフォルト値はプロデューサによって定義されます。 |
|
|
プロデューサが宛先で作成されなかった場合は必須です。この場合はメッセージが指定された宛先に送信されます。 存在する場合、次のいずれかのフォームを取る必要があります:
プロデューサが宛先で作成された場合は禁止です。この場合はメッセージが、プロデューサが作成された宛先に送信されます。 |
|
|
オプション。 このパラメータは、送信中のメッセージの 注意:
|
|
|
オプション。 このパラメータは、送信中のメッセージの このパラメータはオプションですが、 |
レスポンス・ヘッダー:
| ヘッダー | 説明 |
|---|---|
|
|
次のいずれかの値がこのヘッダーに設定されます:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
これは常にデフォルト値の |
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
次のいずれかが発生しました:
|
|
|
|
|
|
HTTPリクエストの |
|
|
プロデューサにデフォルトの宛先がなく宛先がリクエストで指定されなかったか、プロデューサにデフォルトの宛先があり、さらに宛先がリクエストで指定されたか、のいずれかです。 |
|
|
メッセージに指定された宛先は存在しません。 |
|
|
メッセージを送信するために指定されたプロデューサは存在しません。 |
|
|
リクエストのメッセージ関連ヘッダーが最大サイズを超えました。 |
|
|
リクエストの本文が最大サイズを超えました。 |
|
|
|
|
|
サービス・インスタンスにはすでに、メッセージの指定された宛先に最大数のメッセージがあります。 |
|
|
ターゲット設定された宛先がメッセージのバイト数に対するハード割当て制限に達し、まだソフト割当て制限を下回っていないため、メッセージを送信できませんでした。 詳細は、「ハード割当て制限とソフト割当て制限」を参照してください。 |
|
|
メッセージ本文が含まれる入力ストリームをサーバーが取得できなかったか、メッセージを送信しようとしてJMSブローカによって低レベルの例外がスローされました。 |
メッセージの受信
コンシューマの作成
このトピックでは、コンシューマの作成に関する情報を提供します。
メソッド: PUT
パス: /consumers/consumerName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
必須。 この値はコンシューマを作成するためのセッションの名前です。 |
|
|
オプション。 存在する場合、値は次のいずれかのフォームを取る必要があります:
コンシューマがメッセージを消費する元の宛先を指定します。 |
|
|
オプション。 コンシューマが受信するメッセージのサブセットを指定します。 パラメータの値はセレクタである必要があります。 セレクタの構文については、 |
|
|
オプション。 存在する場合、値は |
|
|
オプション。 永続サブスクリプションの名前を指定します。 存在しない場合、作成されたコンシューマは永続トピック・サブスクライバになります(このため、 |
結果: コンシューマを作成します。 destinationパラメータが存在してキューを指定する場合、コンシューマはキューから消費します。 destinationパラメータが存在してトピックを指定する場合、コンシューマはトピックから消費します。
注意:
subscriptionNameパラメータが存在する場合、正確な結果はdestinationパラメータが存在するかどうかによって大きく変わります。
destinationパラメータが存在する場合、次のように他のパラメータで指定された文字でコンシューマが作成されます:
-
destinationがトピックを指定し、クライアントIDが接続に設定されてsubscriptionNameが存在する場合、クライアントIDおよびサブスクリプション名で指定されたトピックに対する永続サブスクリプション経由でコンシューマがメッセージを消費します。 -
指定されたクライアントIDおよび名前の永続サブスクリプションが存在しない場合、指定されたトピックに指定されたセレクタによってサブスクリプションが作成されます。
-
IDおよび名前の永続サブスクリプションがすでに存在し、トピックおよびセレクタが永続サブスクリプションを作成したメソッド内のものと同じである場合、既存の永続サブスクリプションが使用されます(したがって、サブスクリプションが作成されたときからトピックに送信されたメッセージでサブスクリプションによって消費されていないものを、消費できるようになります)。
-
IDおよび名前の永続サブスクリプションがすでに存在しますが、このメソッドで指定されたトピックまたはセレクタ(またはそれがない場合も)が、既存の永続サブスクリプションを作成したメソッドで指定されたトピックおよびセレクタ(またはそれがない場合も)と異なる場合、既存のサブスクリプションは削除され、それによって保存されたメッセージは破棄されて、指定されたID、名前およびトピックで指定されたセレクタによって新規の永続サブスクリプションが作成されます。
destinationパラメータが存在しない場合、クライアントIDが接続で設定されている必要があり、subscriptionNameパラメータが存在する必要があり、selectorパラメータが存在しない必要があり、指定されたクライアントおよびサブスクリプション名の永続サブスクリプションが存在する必要があります。 (localModeのセマンティクスは未変更です。) この場合、作成されたコンシューマは既存のサブスクリプションに対するトピック上のコンシューマで、既存のサブスクリプションのセレクタ(またはそれがない場合も)とともに、既存のサブスクリプションを使用します。 この場合、メソッドでサブスクリプションは作成または削除されません。
レスポンス・ヘッダー:
既存の永続サブスクリプションでのコンシューマの作成に対するレスポンスには、サブスクライバのプロパティを提供する次のヘッダーが含まれます。
-
X-OC-DESTINATIONサブスクリプションのトピックを示します。
-
X-OC-SELECTORサブスクリプションのセレクタを示します(ある場合)。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
次のいずれかが発生しました:
|
|
|
宛先もサブスクリプション名もどちらも指定されませんでした。 |
|
|
|
|
|
永続サブスクリプションがすでにコンシューマを持つ場合に、その永続サブスクリプションでコンシューマを作成しようとしました。 |
|
|
サブスクリプション名およびdestinationパラメータが指定されましたが、 |
|
|
プロデューサを作成するためのセッションは存在しません。 |
|
|
コンシューマがメッセージを取得する元の宛先が存在しません。 |
|
|
指定された名前のコンシューマはすでに存在します。 |
|
|
メソッドが |
|
|
作成が試行されたコンシューマが存在していた永続サブスクリプションは現在存在せず、このメソッドの呼出しによってサブスクリプションが(もし存在しなければ)作成され、サービス・インスタンスは永続サブスクリプションの最大数になります。 |
|
|
メソッドが |
コンシューマのクローズおよび削除
このトピックでは、コンシューマのクローズおよび削除に関する情報を提供します。
メソッド: DELETE
パス: /consumers/consumerName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: コンシューマをクローズして削除します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
クローズするために指定されたコンシューマは存在しません。 |
|
|
指定されたコンシューマのクローズおよび削除中に低レベルの例外がスローされました。 |
メッセージのコンシューマ経由の受信
この項では、コンシューマを介したメッセージの受信に関する情報を提供します。
メソッド: POST
パス: /consumers/consumerName/messages
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
必須。 値のミリ秒数は、5分の最大受信タイムアウトを上回らない、厳密な正の長整数にする必要があります。 nullメッセージを返す前に、メッセージがコンシューマから使用可能になるまで待機する時間(ミリ秒)を指定します。 |
HTTPリクエスト/レスポンスのシーケンスの例については、「セレクタによるキューからのメッセージの受信」および「永続サブスクリプションからのメッセージの受信」を参照してください。
結果:
-
セレクタ(コンシューマで設定されている場合)の条件に合うメッセージがコンシューマのキューにある場合、または
timeoutのミリ秒数内でキューを入力する場合、これはHTTPレスポンスで返されます。 そうでない場合はnullレスポンスが返されます。 -
トピックから受信する場合、コンシューマが作成されてからメッセージがトピックにパブリッシュされている場合、または
timeoutのミリ秒数内でメッセージがトピックにパブリッシュされている場合、これらのメッセージの1つがHTTPレスポンスで返されます。 そうでない場合はnullレスポンスが返されます。 -
コンシューマが永続サブスクリプションから消費している場合、および永続サブスクリプションに現在格納されているメッセージがある場合、または
timeoutのミリ秒数内で永続サブスクリプションを入力する場合、これはHTTPレスポンスで返されます。 そうでない場合はnullレスポンスが返されます。
注意:
コンシューマが作成されたセッションが処理済の場合、または処理済ではないがクライアント承認が設定されている場合、セッションをコミット(セッションが処理済の場合)または承認(セッションが処理済ではないがクライアント承認が設定されている場合)する前に、1つのメッセージのみがそのコンシューマ経由で受信される可能性があります。 適切なコミットまたは承認アクションが行われるまで、それ以外ではコンシューマの宛先から受信される可能性がある他のメッセージが存在する場合でも、そのコンシューマからの受信でnullレスポンスが返されます。
レスポンス・ヘッダー: メッセージが返される場合、ヘッダーには「メッセージを配信するHTTPリクエストおよびレスポンスのプロパティ」の説明どおりにメッセージで決定される内容が含まれます。 それ以外の場合、ヘッダーX-OC-NULL: trueのコンテンツのないレスポンスが返されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
リクエストに |
|
|
|
|
|
受信するために指定された元のコンシューマは存在しません。 |
|
|
|
|
|
受信中に低レベルの例外がスローされたか、受信されたメッセージから情報を抽出しようとして例外がスローされました。 |
永続サブスクリプションの作成および管理
この項では、Oracle Messaging Cloud Serviceの永続サブスクリプションの作成および管理に関する情報を提供します。
トピック:
永続サブスクリプションの作成
永続サブスクリプションは、特殊なタイプのコンシューマの作成によって暗黙的に作成されます。
永続サブスクリプションを作成するには、「コンシューマの作成」項で特にsubscriptionNameおよびclientIdについての注記を参照してください。
永続サブスクリプションのリスト
この項では、永続サブスクリプションのリストに関する情報を提供します。
メソッド: GET
パス: /subscriptions
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
サブスクリプションの名前。 |
|
|
トピックの名前。 永続サブスクリプションはトピックのみに適用されるため、このパラメータの値は |
|
|
サブスクリプションに関連付けられたクライアントID。 |
これらのパラメータはいずれも必須ではありませんが、後述のように特定の組合せのみが許可されています。
結果: 指定されたリクエスト・パラメータに応じて、1つ以上の永続サブスクリプションに関する情報を返します:
-
clientIdとsubscriptionNameリクエストで指定されたネームスペース(存在する場合)の指定された名前およびクライアントIDに対する、一意の永続サブスクリプションを指定するXMLドキュメントまたはJSONドキュメントを返します。
XML形式は次のようになります:
<subscription> <clientId>client ID<clientId> <name>subscription name</name> <topic>topic name</topic> <selector>selector</selector> <canonicalLink>relative path to the subscription</canonicalLink> </subscription>JSON形式は次のようになります:
{ "clientId": "client ID", "name": "subscription name", "topic": "topic name", "selector": "selector", "canonicalLink": "relative path to the subscription" }すべての子要素が存在しますが、
selectorは例外で、サブスクリプションがセレクタに関連付けられている場合に存在します。clientIdおよびname要素は常に対応するパラメータと同じ値を持ちます。 -
clientIdリクエストで指定されたネームスペースの指定されたクライアントIDに対する、すべての永続サブスクリプションを指定するXMLドキュメントまたはJSONドキュメントを返します。
XML形式は次のようになります:
<subscriptions> <items> <clientId>client ID<clientId> <name>name</name> <topic>topic name</topic> <selector>selector</selector> <canonicalLink>relative path to the subscription</canonicalLink> </items> ... <canonicalLink>relative path to the subscription list</canonicalLink> </subscriptions>JSON形式は次のようになります:
{ "subscriptions": { "clientId": "client ID", "name": "subscription name" "topic": "topic name", "selector": "selector", "canonicalLink": "relative path to the subscription" } "canonicalLink": "relative path to the subscription list" }クライアントIDにサブスクリプションがない場合、この要素は空である可能性があります。 個々の子は一意の永続サブスクリプションを指定します。 すべての
subscription要素のclient IDは対応するリクエスト・パラメータの値と同じです。nameの各値は、永続サブスクリプションがクライアントIDおよびサブスクリプション名で指定される際に一度だけ表示されます。 -
topicNameリクエストで指定されたネームスペースの指定された名前のトピックに対する、すべての永続サブスクリプションを指定するXMLドキュメントまたはJSONドキュメントを返します。 永続サブスクリプションはトピックのみに適用されるため、このパラメータの値は
/topics/nameという形式ではなく、この形式のname部分のみなので注意してください。 レスポンス内のXMLドキュメントの形式は、clientIdについて前述したXML形式と同じです。 トピックにサブスクリプションがない場合、この要素は空である可能性があります。 個々の子は一意の永続サブスクリプションを指定します。 すべてのsubscription要素のtopic>の内容は、対応するリクエスト・パラメータの値と同じです。「クライアントID」とnameの各値のペアは、クライアントIDとサブスクリプション名によって永続サブスクリプションが指定されるため、1回だけ表示されます。 -
いずれのパラメータも指定されない
リクエストで指定されたネームスペースに対する、すべての永続サブスクリプションを指定するXMLドキュメントまたはJSONドキュメントを返します。 フォーマットは、前述の
clientIdとsubscriptionName、clientId、およびtopicNameと同じです。 ネームスペースに永続サブスクリプションがない場合、この要素は空である可能性があります。 個々の子は一意の永続サブスクリプションを指定します。 すべてのsubscription要素のtopic値は対応するリクエスト・パラメータの値と同じです。client IDおよびnameの各値のペアは、永続サブスクリプションがクライアントIDおよびサブスクリプション名で指定される際に一度だけ表示されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
|
|
|
|
|
|
クライアントIDおよびサブスクリプション名がリクエストで指定されましたが、このようなサブスクリプションは存在しません。 |
|
|
低レベルの例外が発生しました。 |
永続サブスクリプションの削除
永続サブスクリプションは、特殊なタイプのコンシューマの作成によって暗黙的に作成されます。 永続サブスクリプションは、各メッセージが受信されるまでトピックに送信されたすべてのメッセージを格納します。
セッションによる永続サブスクリプションの削除の詳細は、「永続サブスクリプションの削除」を参照してください。
一時宛先の作成および管理
一時宛先の作成
次の種類の一時宛先を作成できます:
-
一時キュー: TemporaryQueueは、接続の期間に対して作成される一意のキュー・オブジェクトです。 メッセージは一時キューからのみ、それが作成された接続を通して消費される可能性があります。
-
一時トピック: TemporaryTopicは、接続の期間に対して作成される一意のトピック・オブジェクトです。 メッセージは一時トピックからのみ、それが作成された接続を通して消費される可能性があります。
メソッド: POST
パス:
-
一時キューを作成する場合のパスは
/temporaryQueues -
一時トピックを作成する場合のパスは
/temporaryTopics
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
セッション名を指定します。 このパラメータは必須です。 |
結果: 一時キューまたは一時トピックを作成します。
レスポンス・ヘッダー:
Location
新規に作成された一時キューまたは一時トピックのURLが含まれます。
レスポンス本文:
| 宛先タイプ | XML形式 | JSON形式 |
|---|---|---|
|
一時キュー |
<temporaryQueue>
<name>queue name</name>
<connection>name of the connection with which the queue is associated</connection>
<canonicalLink>relative path to temporary queue</canonicalLink>
</temporaryQueue>
|
{
"type": "temporaryQueue",
"name" "queue name",
"connection": "name of the connection with which the queue is associated",
"canonicalLink": "relative path to temporary queue"
} |
|
一時トピック |
<temporaryTopic>
<name>topic name</name>
<connection>name of the connection with which the topic is associated</connection>
<canonicalLink>relative path to temporary topic</canonicalLink>
</temporaryTopic>
|
{
"type": "temporaryTopic",
"name" "topic name",
"connection": "name of the connection with which the topic is associated",
"canonicalLink": "relative path to temporary topic"
} |
|
一時キュー(複数) |
<temporaryQueues>
<name>queue name</name>
<connection>name of the connection with which the queue is associated</connection>
<canonicalLink>relative path to temporary queue</canonicalLink>
...
<canonicalLink>relative path to list of temporary queues</canonicalLink>
</temporaryQueues>
|
{
"temporaryQueues": [
{
"name": "queue name",
"connection": "name of the connection with which the queue is associated",
"canonicalLink": "relative path to temporary queue"
}
...
],
"canonicalLink": "relative path to list of temporary queues"
} |
|
一時トピック(複数) |
<temporaryTopics>
<name>topic name</name>
<connection>name of the connection with which the topic is associated</connection>
<canonicalLink>relative path to temporary topic</canonicalLink>
...
<canonicalLink>relative path to list of temporary topics</canonicalLink>
</temporaryTopics>
|
{
"temporaryTopics": [
{
"name": "topic name",
"connection": "name of the connection with which the topic is associated",
"canonicalLink": "relative path to temporary topic"
}
...
],
"canonicalLink": "relative path to list of temporary topics"
} |
nameフィールドのコンテンツは、新しく作成された一時キューまたはトピックに対してサービスで生成された擬似ランダム名です。
connectionフィールドは、メッセージング・コンテキストの接続から宛先が作成されなかった場合、省略されます。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
指定された名前のセッションは存在しません。 |
一時宛先のリスト
この項では、一時宛先のリストに関する情報を提供します。
一時キューまたは一時トピックのリスト
メソッド: GET
パス:
-
メッセージング・コンテキスト内のすべての一時キューをリストする場合のパスは
/temporaryQueues -
メッセージング・コンテキスト内のすべての一時トピックをリストする場合のパスは
/temporaryTopics
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
オプション。 |
結果: メッセージング・コンテキスト内のすべての一時キューまたは一時トピックのリストが返されます。
レスポンス本文:
XMLで、HTTP Cookieに関連付けられたすべての一時キューをリストするための形式は次のとおりです:
<temporaryQueues>
<items>
<name>queue name</name>
<connection>name of the connection with which the queue is associated</connection>
<canonicalLink>relative path to temporary queue</canonicalLink>
</items>
...
<canonicalLink>relative path to list of temporary queues</canonicalLink>
</temporaryQueues>
XMLで、HTTP Cookieに関連付けられたすべての一時トピックをリストするための形式は次のとおりです:
<temporaryTopics>
<items>
<name>topic name</name>
<connection>name of the connection with which the topic is associated</connection>
<canonicalLink>relative path to temporary topic</canonicalLink>
</items>
...
<canonicalLink>relative path to list of temporary topics</canonicalLink>
</temporaryTopics>
<name>要素の内容は、queueNameまたはtopicNameです。<connection>要素は、クライアントのメッセージング・コンテキストに関連付けられた接続から一時キューまたはトピックが作成された場合にのみ存在します。
一時キューまたはトピックが他の場所で作成され、たとえばメッセージのReply-Toヘッダー内で受信された場合、<connection>要素は存在しません。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
connectionParameterNotFound |
REST APIクライアントが、特定の指定された接続で作成された一時宛先をすべてリストするメソッドを呼び出しましたが、その名前の接続はメッセージング・コンテキストに存在しません。 |
シングル一時キューまたはシングル一時トピックのプロパティの取得
メソッド: GET
パス:
-
シングル一時キューのプロパティを取得するためのパスは
/temporaryQueues/queueName -
シングル一時トピックのプロパティを取得するためのパスは
/temporaryTopics/topicName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 指定された名前の一時キューまたは一時トピックのプロパティが返されます。
レスポンス本文:
シングル一時キューをリストするための形式は次のとおりです:
<temporaryQueue>
<name>queue name</name>
<connection>name of the connection with which the queue is associated</connection>
<canonicalLink>relative path to temporary queue</canonicalLink>
</temporaryQueue>
シングル一時トピックをリストするための形式は次のとおりです:
<temporaryTopic>
<name>topic name</name>
<connection>name of the connection with which the topic is associated</connection>
<canonicalLink>relative path to temporary topic</canonicalLink>
</temporaryTopic>
<name>要素の内容は、queueNameまたはtopicNameです。<connection>要素は、クライアントのメッセージング・コンテキストに関連付けられた接続から一時キューまたはトピックが作成された場合にのみ存在します。
一時キューまたはトピックが他の場所で作成され、たとえばメッセージのReply-Toヘッダー内で受信された場合、<connection>要素は存在しません。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
リクエストされた一時宛先は存在しません。 |
一時宛先の削除
この項では、一時宛先の削除に関する情報を提供します。
メソッド: DELETE
パス:
-
一時キューを削除する場合のパスは
/temporaryQueues/queueName -
一時トピックを削除する場合のパスは
/temporaryTopics/topicName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 指定された名前の一時宛先が削除されます。
注意:
削除中の一時宛先が同じメッセージング・コンテキスト内の接続から作成された場合、一時宛先はバックエンドから削除されます。 それ以外の場合はメッセージング・コンテキストからのみ削除され、バックエンドからは削除されません。
バックエンドから削除された後で、一時宛先を他のクライアントで使用することはできません。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
削除がリクエストされた一時宛先は存在しません。 |
キュー・ブラウザの作成および管理
この項では、Oracle Messaging Cloud Serviceのキュー・ブラウザの作成および管理に関する情報を提供します。
トピック:
キュー・ブラウザの作成
クライアントは、キュー上のメッセージを削除せずに参照する際にキュー・ブラウザを使用します。 キュー・ブラウザはセッションから作成されます。
キュー・ブラウザは、キュー内のすべてのメッセージ、またはメッセージ・セレクタに一致するメッセージのみを参照する際に使用される可能性があります。 キューに対するブラウザが作成された後にメッセージがそのキューに送信される場合、そのメッセージはキュー・ブラウザで表示できない可能性があるので注意してください。
メソッド: PUT
パス: /queueBrowsers/browserName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
リクエスト・パラメータ:
| パラメータ | 説明 |
|---|---|
|
|
この値はキュー・ブラウザを作成する必要があるセッションの名前です。 |
|
|
宛先名を指定します。 値は |
|
|
メッセージ・セレクタ(オプション)。 |
結果: destinationパラメータでキュー・ブラウザを作成します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
指定された名前のセッションはありません。 |
|
|
リクエストされた宛先は存在しません。 |
|
|
指定された名前のキュー・ブラウザはすでに存在します。 |
|
|
次のいずれかが発生しました:
|
キュー・ブラウザのプロパティの取得
この項では、キュー・ブラウザ・プロパティの取得に関する情報を提供します。
メソッド: GET
パス: /queueBrowsers/browserName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: 名前browserNameのキュー・ブラウザのプロパティが返されます。
レスポンス本文:
XMLでは、キュー・ブラウザのプロパティの形式は次のとおりです。
<queueBrowser>
<name>client-assigned name of the browser</name>
<queue>path specifying the persistent or temporary queue browsed</queue>
<selector>selector expression<selector>
<canonicalLink>relative path to queue browser</canonicalLink>
</queueBrowser>
JSONでは、キュー・ブラウザのプロパティの形式は次のとおりです。
{
"name": "client-assigned name of the browser",
"queue": "path specifying the persistent or temporary queue browsed",
"selector": "selector expression",
"canonicalLink": "relative path to queue browser"
}queue要素の内容は、ブラウザがqueueNameという永続的なキューをブラウズする場合は/queue/queueNameという形式になります。ブラウザがqueueNameという名前の一時キューをブラウズする場合は、/temporaryQueue/queueNameの形式をとります。
selector要素は、キュー・ブラウザがセレクタに関連付けられている場合のみ存在します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
リクエストされたキュー・ブラウザは存在しません。 |
メッセージの参照
このトピックでは、キュー・ブラウザのメッセージの参照に関する情報を提供します。
メソッド: POST
パス: /queueBrowsers/browserName
有効範囲: メッセージング・コンテキスト
認可: Messaging AdministratorまたはMessaging Worker
結果: ブラウザ内にメッセージがある場合、HTTPレスポンスで返されます。 そうでない場合はnullレスポンスが返されます。
レスポンス・ヘッダー:
値trueを持つX-OC-NULLヘッダーがある場合、ブラウザ内にすでにメッセージがないことを示します。
エラー・レスポンス:
| エラー・メッセージ | 説明 |
|---|---|
|
|
リクエストされたキュー・ブラウザは存在しません。 |