PL/SQLユーザーは、DBMS_AQ
パッケージを使用して、JMSキューのメッセージをエンキューおよびデキューできます。この章で説明するJMSタイプのメンバー、静的ファンクションおよびプロシージャを使用して、デキューされたJMSメッセージのエンキューまたは解釈にJMSメッセージを移入する必要があります。
この章では、次の項目について説明します。
概要
セキュリティ・モデル
JavaとPL/SQLのデータ・タイプ
バイト、ストリームおよびマップ・メッセージの詳細
一般的メッセージと固有メッセージのアップキャストおよびダウンキャスト
JMSタイプのエラー・レポート
Oracle JMSタイプの定数
CONVERT_JMS_SELECTOR
Java Message Service(JMS)は、メッセージング・システムへのアクセスに使用される、一般的に普及している標準的なインタフェースです。Oracle JMS(OJMS)は、Oracle Streams Advanced Queuing(AQ)およびリレーショナル・データベース・システム(RDBMS)に基づいてJMSを実装します。メッセージは、OJMS固有のADTとしてキューに格納されます。Javaクライアントは、OJMSパッケージを使用して、これらのメッセージをエンキュー、デキューおよび操作します。
これに対し、PL/SQLユーザーは、DBMS_AQ
パッケージを使用してJMSメッセージをエンキューおよびデキューし、この章で説明するメンバー・ファンクションを使用してそれらを移入し、解釈します。Oracle Databaseアドバンスト・キューイングは、次のJMS ADTに対してこのようなメンバー・ファンクションを提供します。
aq$_jms_header
aq$_jms_message
aq$_jms_text_message
aq$_jms_bytes_message
aq$_jms_map_message
aq$_jms_stream_message
これらの移入および解釈のメンバー・ファンクション以外にも、次のメンバー・ファンクションを提供しています。
aq$_jms_message
とその他のメッセージのADT間でのキャスト
JMSセレクタから同等のOracle Databaseアドバンスト・キューイングのルールへ変換するPL/SQLストアド・プロシージャ
PUBLIC
には、次のJMSタイプに対するEXECUTE
権限が付与されます。
SYS.AQ$_JMS_MESSAGEタイプ
SYS.AQ$_JMS_TEXT_MESSAGEタイプ
SYS.AQ$_JMS_BYTES_MESSAGEタイプ
SYS.AQ$_JMS_MAP_MESSAGEタイプ
SYS.AQ$_JMS_STREAM_MESSAGEタイプ
SYS.AQ$_JMS_OBJECT_MESSAGEタイプ
SYS.AQ$_JMS_NAMEARRAYタイプ
SYS.AQ$_JMS_VALUEタイプ
SYS.AQ$_JMS_EXCEPTIONタイプ
データ・タイプは、PL/SQLとJavaの間で1対1に対応しません。
BYTE
やSHORT
など、一部のJavaタイプはPL/SQLに表示されません。PL/SQLタイプのINT
は、これらのタイプを表示するために選択されました。Java BYTE
またはSHORT
値の保持を目的としたPL/SQL INT
値がその対象範囲を超えている場合、範囲外エラーがスローされます。
他のJavaタイプは、PL/SQLにおいて様々な機能を備えた複数のJavaタイプを持っています。Java文字列はVARCHAR2
とCLOB
の両方で表示できます。VARCHAR2
には最大4000バイトの制限があります。マップ、ストリームおよびバイト・メッセージ・タイプからTEXT
データを取り出すと、常にCLOB
が戻されます。マップ、ストリームおよびバイト・メッセージ・タイプを更新すると、VARCHAR2
またはCLOB
のいずれかを送信できます。
同様に、Java BYTE
ARRAY
はRAW
およびBLOB
の両方で表示できます。RAW
の最大サイズは32767です。マップ、ストリームおよびバイト・メッセージ・タイプからBYTE
ARRAY
データを取り出すと、常にBLOB
が戻されます。マップ、ストリームおよびバイト・メッセージ・タイプを更新すると、RAW
またはBLOB
のいずれかを送信できます。
関連項目: JMS仕様3.11.3、StreamMessageおよびMapMessageによる変換 |
Oracle Database 10gでは、OJMS PL/SQLユーザー向けに、新しいAQ$_JMS_VALUE
ADTがSYS
スキーマに追加されました。これは、Java一般オブジェクト・クラスObject
の模倣を目的として、aq$_jms_stream_message
のread_object
プロシージャおよびaq$_jms_map_message
のget_object
プロシージャを実装するために特に使用されます。AQ$_JMS_VALUE
ADTは、JMS StreamMessage
およびMapMessage
を格納できるあらゆるデータ・タイプを表現できます。
コレクションADT AQ$_JMS_NAMEARRAY
は、MapMessage
のgetNames
メソッド用として追加されました。これは、名前の配列を格納します。
今回のリリースでは、スローされたJava例外を表示するために、PL/SQL側のOJMS JAVAストアド・プロシージャにADT AQ$_JMS_EXCEPTION
が追加されました。これにより、OJMSストアド・プロシージャを使用してスローされたJava例外を取り出し、PL/SQL側で分析できます。
Oracleは、AQ$_MAP_MESSAGE
、AQ$_JMS_STREAM_MESSAGE
およびAQ$_JMS_BYTES_MESSAGE
タイプの一部のプロシージャを実装するために、Javaストアド・プロシージャを使用します。これらのタイプでは、AQ$_JMS_TEXT_MESSAGE
タイプとは異なる共通の機能を備えています。この項では、この共通の機能について説明します。
この項では、次の項目について説明します。
マップ、ストリーム、バイトが他のメッセージと最も異なるのは、メッセージ・ペイロードがJAVAによりバイト・ストリームとしてエンコードされる点です。つまり、PL/SQLでこのようなペイロードの取出しおよび更新をするには、Oracle JAVAストアド・プロシージャが必要です。
処理中、メッセージ・ペイロードは2つの場所に格納されます。PL/SQL側ではJMSメッセージADTのデータ・メンバーとして格納され、Jserv側では静的な変数として格納されます。(JservはOracle Database内のJVMです。)ペイロードが処理されると、ペイロード・データは最初にJserv側で静的な変数に変換されます。静的な変数が初期化されると、メッセージ・ペイロードに関するその後のすべての更新は、この静的な変数に基づいて実行されます。処理の最後に、ペイロード・データはPL/SQL側にフラッシュされます。
Oracleには、Jservの静的な変数の状態を保持し、これらのメンバー・プロシージャが呼び出されたときにルールを実行するメンバー・プロシージャが備わっています。これらのプロシージャは、次のADTに含まれています。
aq$_jms_bytes_message
aq$_jms_map_message
aq$_jms_stream_message
ペイロード・データ操作のためのコールをする前に、Jservの静的な変数を適切に初期化する必要があります。初期化するには、prepare
またはclear_body
プロシージャをコールします。prepare
プロシージャはPL/SQL ADTのペイロード・データを使用して静的な変数を初期化し、clear_body
プロシージャは静的な変数を空のペイロード(空のハッシュテーブルまたはストリーム)に初期化します。
注意: 他のコールを行う前に、prepare またはclear_body プロシージャをコールしてJservの静的な変数を適切に初期化することが重要です。通常、最初に2つのメソッドがコールされます。ただし、1つのメッセージに対し、何度でもコールできます。これら2つのメソッドのコールでは、flush プロシージャを最初にコールしないと、メッセージに対して行われた更新がすべて無効になります。 |
flush
プロシージャをコールすると、Jservの静的な変数に加えられた変更がPL/SQL ADTに同期化されます。加えられた変更をADTペイロードに反映する場合は、flush
コールを行う必要があります。ADTペイロードにかかわるため、変更をADTに戻して同期化させることが重要です。
clean
プロシージャは、静的な変数のガベージ・コレクションを実行します。これにより、クリーンアップが行われ、JVMメモリーが解放されます。メッセージの処理が完了した直後にこのプロシージャをコールすると、メモリー・リークを防止できます。
Oracleは、単一の静的な変数ではなく、静的な変数のコレクションを使用して、Jserv側のメッセージ・ペイロードを処理します。このコレクションは、メッセージ・ストアと呼ばれます。マップ、バイトまたはストリーム・メッセージの各タイプは、1つのセッション内に固有のメッセージ・ストアを保有します。
Oracleは、操作IDパラメータを使用して、このメッセージ・ストア内で動作する静的な変数を適切に検索します。prepare
やclear_body
などのコールを初期化すると、操作IDが与えられます。このIDは、後のメッセージへのアクセスで使用されます。
メッセージの処理が完了したら、操作IDを使用してclean
プロシージャをコールし、メッセージ・ストアをクリーンアップする必要があります。これにより、メモリー・リークを防止できます。メッセージADT aq$_jms_bytes_message
、aq$_jms_map_message
およびaq$_jms_stream_message
のclean_all
静的プロシージャは、対応するメッセージ・ストアの静的な変数をすべてクリーンアップします。
この項では、メッセージの取出しおよび移入に通常かかわるプロシージャについて説明します。
メッセージを取り出すプロシージャは、通常、次のとおりです。
メッセージのprepare
をコールします。
操作IDを指定していない場合、このコールにより決定します。
与えられた操作IDを使用し、取出しプロシージャを複数回コールします。
与えられた操作IDを使用し、clean
プロシージャを複数回コールします。
メッセージを移入するプロシージャは、通常、次のとおりです。
メッセージのclear_body
をコールします。
aq$_jms_map_message
では、prepare
をコールすることにより、既存のペイロードに基づいたメッセージの更新もできます。操作IDを指定していない場合、このコールにより決定します。
与えられた操作IDを使用し、更新プロシージャを複数回コールします。
与えられた操作IDを使用し、flush
メソッドをコールします。
与えられた操作IDを使用し、clean
プロシージャを複数回コールします。
メッセージを受信すると、JMS仕様に従い、その本文は読取り専用となります。clear_body
メソッドをコールすると、この本文への書込みができます。このメソッドは、その時点のメッセージ本文を消去し、メッセージ本文を空に設定します。
OJMS JAVA APIは、JMS仕様のルールに基づいています。ただし、JMSメッセージADTをPL/SQLで更新する場合は、ルールが選択的に実行されます。
マップ・メッセージ
既存のマップ・ペイロードの最上位にエントリを追加するとペイロードの更新に便利なため、制約が緩和されます。つまり、マップ・メッセージには読取り専用または書込み専用モードがありません。
ストリームおよびバイト・メッセージ
これらのペイロードではデータの読取りおよび書込みの際にストリームを使用するため、制約は緩和されません。ストリームの途中でペイロードを更新することは困難です。ストリームおよびバイト・メッセージのペイロードを処理する場合、読取り専用または書込み専用モードとなります。prepare
プロシージャをコールすると、読取り専用モードでメッセージ・ペイロードが初期化されます。clear_body
プロシージャをコールすると、書込み専用モードでメッセージ・ペイロードが初期化されます。
reset
プロシージャをコールすると、ストリームの開始位置にポインタがリセットされ、モードが書込み専用から読取り専用に切り替えられます。reset
プロシージャをコールした場合、メッセージ・ペイロードに加えられた変更はJservの静的な変数に保存されます。
それに対し、prepare
プロシージャは、PL/SQL ADTのペイロードでJservの静的な変数にあるメッセージ・ペイロードを上書きします。
Oracleには、モードを問い合せるためのget_mode
メンバー・ファンクションがあります。
バイト・メッセージのメンバー・ファンクションは、ストリーム・メッセージのメンバー・ファンクションと異なります。ストリーム・メッセージはJava ObjectOutputStream
によりエンコードされ、バイト・メッセージはJava DataOutputStream
によりエンコードされます。ストリーム・メッセージでは、基本的なタイプはJavaオブジェクトとして書込みおよび読取りされますが、バイト・メッセージではDataOutputStream
のエンコーディング・メカニズムに応じてRAWバイトとして書込みおよび読取りされます。
ストリーム・メッセージでは、read_bytes
メソッドが対応するwrite_bytes
メソッドにより書き込まれたバイト配列フィールドの末尾まで、バイトのストリーム上で動作します。バイト・メッセージのread_bytes
メソッドは、バイト・ストリーム全体の末尾まで、バイトのストリーム上で動作します。読取りの長さを区別するために、aq$_bytes_message
のread_bytes
メンバー・プロシージャがlength
パラメータも必要とするのはこのためです。
バイト・メッセージはタイプ変換をサポートしていないため、バイト・メッセージによるタイプ変換エラーは発生しません。
get_unsigned_byte
およびget_unsigned_short
メソッドはバイト・メッセージでは使用できますが、ストリーム・メッセージでは使用できません。これは、ストリーム・メッセージがJavaオブジェクトを読み取るのに対し、符号なしバイトまたは符号なしショートのJavaオブジェクトが存在しないためです。
read_string
およびwrite_string
メソッドは、バイト・メッセージには使用できません。バイト・メッセージADTは、一部で文字エンコーディングが必要です。utf-8
エンコーディングをサポートするread_utf
およびwrite_utf
メソッドを備えています。
注意: バイト・メッセージにより記述されたデータはすべて、基本にDataOutputStream を使用します。データからバイトへのエンコードの詳細は、JDK APIのマニュアルJavaSoft.comを参照してください。 |
バイト、マップおよびストリーム・メッセージ・タイプは、RAW
またはBLOB
としてデータベースに格納されます。Oracle Databaseアドバンスト・キューイングの今回のリリースでは、次のメンバー・ファンクションにより、解釈を省略して、ペイロードをRAWバイトとして設定および取得します。
set_bytes(payload IN BLOB) set_bytes(payload IN RAW) get_bytes(payload OUT BLOB) get_bytes(payload OUT RAW)
Oracle9i リリース2(9.2)では、これらのファンクションはバイト・メッセージ用に提供されていました。
OJMS ADT aq$_jms_message
は、同じOracle Databaseアドバンスト・キューイングのキューに異なるタイプのメッセージを格納した、一般的なメッセージを表示する場合に使用されます。Oracle Databaseアドバンスト・キューイングは、このADTと特定のメッセージ・タイプのADT間のアップキャストおよびダウンキャストをサポートすることによって、aq$_jms_message
の取得および移入をサポートしています。
aq$_jms_message
を読み取るには、最初に、そのmessage_type
フィールドに基づいて、固有のメッセージ・タイプにダウンキャストする必要があります。
aq$_jms_message
を移入するには、固有のメッセージをまず移入し、それをaq$_jms_message
にアップキャストする必要があります。これにより、他の固有メッセージのADTのすべてのメンバー・ファンクションが、このADTにコピーされることを防ぎます。また、このADTの操作と他の固有メッセージのADTの操作の一貫性が保証されます。
表274-1に、Oracle JMSタイプに関連するエラーを示します。
表274-1 Oracle JMSタイプのエラー
ORAエラー番号 | dbms_jms_plsqlパッケージの定数 | 説明 |
---|---|---|
ORA-24190 |
|
ペイロード・データのサイズが出力パラメータの許容範囲を超えています。たとえば、 |
ORA-24191 |
|
すでに存在しているプロパティを設定しようとしています。 |
ORA-24192 |
|
プロパティ名がNULLのままプロパティを設定しようとすると発生します。 |
ORA-24193 |
|
PL/SQL数値タイプがJavaタイプの有効範囲を超えています。たとえば、 |
ORA-24194 |
|
取出しメソッドのJavaタイプとペイロードのフィールドのJavaタイプ間のタイプ変換が無効です。 |
ORA-24195 |
|
マップのサイズが |
ORA-24196 |
|
メッセージ・ペイロードへのアクセス・モードが不適切です。たとえば、書込み専用モードでメッセージ・ペイロードを読み取ろうとしているか、読取り専用モードでメッセージ・ペイロードに書き込もうとしています。 |
ORA-24197 |
|
他のエラー・カテゴリにあてはまらないJava例外があった場合に発生します。 取出し前に他の例外がスローされた場合は、単一の静的な変数を使用して最後の例外が格納され、上書きされます。PL/SQL側の例外情報を表示するために、新しいADT |
ORA-24198 |
|
メッセージのアクセスに、無効な操作IDが使用されています。 |
ORA-24199 |
|
操作しようとしている同じタイプのメッセージ数が、Javaストアド・プロシージャ側のメッセージ・ストアのサイズを超えています。現在のストアのサイズは20です。同時に20を超えるメッセージを操作する必要があることは、普通ではありません。1つのメッセージを使用した後、 |
この項では、メッセージ・タイプのファンクションを処理する場合に便利な定数について説明します。
DBMS_AQパッケージの定数
DBMS_AQ
パッケージの定数は、様々なタイプのJMSメッセージを指定します。これらは、独自のメッセージ・タイプを持つ一般的なメッセージのアップキャストおよびダウンキャスト、または構築時の一般的なメッセージの処理に便利です。
JMS_TEXT_MESSAGE CONSTANT BINARY_INTEGER; JMS_BYTES_MESSAGE CONSTANT BINARY_INTEGER; JMS_STREAM_MESSAGE CONSTANT BINARY_INTEGER; JMS_MAP_MESSAGE CONSTANT BINARY_INTEGER; JMS_OBJECT_MESSAGE CONSTANT BINARY_INTEGER;
SYS.DBMS_JMS_PLSQLパッケージの定数
SYS.DBMS_JMS_PLSQL
パッケージの定数は、Oracle Database 10g で新しく作成されました。
メッセージ・ペイロードのモードを指定します。get_mode
ファンクションから戻された、メッセージ・ペイロードのモードを解釈する場合に便利です。
MESSAGE_ACCESS_READONLY CONSTANT PLS_INTEGER; MESSAGE_ACCESS_WRITEONLY CONSTANT PLS_INTEGER;
これらの定数により、Oracle Databaseアドバンスト・キューイングのキューのADTタイプを指定します。これらは、JMSセレクタをOracle Databaseアドバンスト・キューイングのルールに変換する際に役立ちます。
DESTPLOAD_JMSTYPE CONSTANT PLS_INTEGER; DESTPLOAD_USERADT CONSTANT PLS_INTEGER; DESTPLOAD_ANYDATA CONSTANT PLS_INTEGER;
aq$_jms_value
タイプに格納できるデータ・タイプを指定します。AQ$_JMS_MAP_MESSAGE
のget_object
メソッド、またはAQ$_JMS_STREAM_MESSAGE
のread_object
メソッドから戻されたaq$_jms_value
を解釈する場合に便利です。
DATA_TYPE_BYTE CONSTANT PLS_INTEGER; DATA_TYPE_SHORT CONSTANT PLS_INTEGER; DATA_TYPE_INTEGER CONSTANT PLS_INTEGER; DATA_TYPE_LONG CONSTANT PLS_INTEGER; DATA_TYPE_FLOAT CONSTANT PLS_INTEGER; DATA_TYPE_DOUBLE CONSTANT PLS_INTEGER; DATA_TYPE_BOOLEAN CONSTANT PLS_INTEGER; DATA_TYPE_CHARACTER CONSTANT PLS_INTEGER; DATA_TYPE_STRING CONSTANT PLS_INTEGER; DATA_TYPE_BYTES CONSTANT PLS_INTEGER; DATA_TYPE_UNSIGNED_BYTE CONSTANT PLS_INTEGER; DATA_TYPE_UNSIGNED_SHORT CONSTANT PLS_INTEGER;
メッセージ・タイプADTのファンクションにより発生するORAエラーのエラー番号を指定します。エラーを処理する場合に便利です。
ERROR_DATA_OVERFLOW CONSTANT PLS_INTEGER := -24190; ERROR_PROP_NAME_EXIST CONSTANT PLS_INTEGER := -24191; ERROR_PROP_NAME_NULL CONSTANT PLS_INTEGER := -24192; ERROR_EXCEED_RANGE CONSTANT PLS_INTEGER := -24193; ERROR_TYPE_MISMATCH CONSTANT PLS_INTEGER := -24194; ERROR_MAP_TOO_LARGE CONSTANT PLS_INTEGER := -24195; ERROR_WRONG_MODE CONSTANT PLS_INTEGER := -24196; ERROR_JAVA_EXCEPTION CONSTANT PLS_INTEGER := -24197; ERROR_INVALID_ID CONSTANT PLS_INTEGER := -24198; ERROR_STORE_OVERFLOW CONSTANT PLS_INTEGER := -24199;
Oracle Databaseには、JMSセレクタからOracle Databaseアドバンスト・キューイングのルールへの変換を支援するストアド・プロシージャが3つ用意されています。これらのルールは、ADD_SUBSCRIBER
操作でサブスクライバ・ルールとして、またはDEQUEUE
操作でデキュー条件として使用できます。これらのプロシージャは、SYS.dbms_jms_plsql
パッケージに含まれています。
最初のプロシージャは、dbms_jms_plsql.DESTPLOAD_JMSTYPE
を対応する定数に持つJMS ADTのいずれかが宛先のペイロード・タイプであり、またJ2EE準拠モードがTRUEであるとみなします。
構文
Function convert_jms_selector(selector IN VARCHAR2) RETURN VARCHAR2
戻り値
変換後のOracle Databaseアドバンスト・キューイングのルールが表示されます。変換エラーが生じた場合は、NULLが表示されます。
例外
実行中にJavaストアド・プロシージャが例外をスローした場合はORA-24197が発生します。
2番目のプロシージャは、1番目に加え、dest_pload_type
パラメータも使用します。このパラメータがSYS.dbms_jms_plsql.DESTPLOAD_JMSTYPE
またはSYS.dbms_jms_plsql.DESTPLOAD_ANYDATA
である場合にのみ、JMSセレクタからOracle Databaseアドバンスト・キューイングのルールへの変換が行われます。dest_pload_type
パラメータがSYS.dbms_jms_plsql.DESTPLOAD_USERADT
の場合は、セレクタのパラメータとまったく同じVARCHAR2
値が戻されます。dest_pload_type
パラメータがこれらの3つの定数に該当しない場合は、NULLが戻されます。
このファンクションは、J2EE準拠モードがTRUEであると前提しています。
構文
Function convert_jms_selector( selector IN VARCHAR2, dest_pload_type IN PLS_INTEGER) RETURN VARCHAR2
戻り値
変換後のOracle Databaseアドバンスト・キューイングのルールが表示されます。変換エラーが生じた場合は、NULLが表示されます。
例外
実行中にJavaストアド・プロシージャが例外をスローした場合はORA-24197が発生します。
3番目のプロシージャは、dest_pload_type
パラメータおよびcompliant
パラメータを利用します。dest_pload_type
パラメータがSYS.dbms_jms_plsql.DESTPLOAD_JMSTYPE
またはSYS.dbms_jms_plsql.DESTPLOAD_ANYDATA
である場合にのみ、JMSセレクタからOracle Databaseアドバンスト・キューイングのルールへの変換が行われます。dest_pload_type
パラメータがSYS.dbms_jms_plsql.DESTPLOAD_USERADT
の場合は、セレクタのパラメータとまったく同じVARCHAR2
値が戻されます。dest_pload_type
パラメータがこれらの3つの定数に該当しない場合は、NULLが戻されます。
変換がJ2EE準拠モードかどうかは、compliant
パラメータが制御します。JMSセレクタの非準拠変換は下位互換用にサポートされています。
構文
Function convert_jms_selector( selector IN VARCHAR2, dest_pload_type IN PLS_INTEGER, compliant IN BOOLEAN )
戻り値
変換後のOracle Databaseアドバンスト・キューイングのルールが表示されます。変換エラーが生じた場合は、NULLが表示されます。
例外
実行中にJavaストアド・プロシージャが例外をスローした場合はORA-24197が発生します。
このADTタイプは、テキスト・メッセージ、バイト・メッセージ、ストリーム・メッセージ、マップ・メッセージまたはオブジェクト・メッセージという5種類のJMSメッセージを表示できます。つまり、このADTを使用して作成されたキューには、5種類のJMSメッセージが格納されます。
この項では、次の項目について説明します。
構文
TYPE AQ$_JMS_MESSAGE AS OBJECT( header aq$_jms_header, senderid varchar2(100), message_type INT, text_len INT, bytes_len INT, text_vc varchar2(4000), bytes_raw raw(2000), text_lob clob, bytes_lob blob, STATIC FUNCTION construct (mtype IN INT) RETURN aq$_jms_message, STATIC FUNCTION construct (text_msg IN aq$_jms_text_message) RETURN aq$_jms_message, STATIC FUNCTION construct (bytes_msg IN aq$_jms_bytes_message) RETURN aq$_jms_message, STATIC FUNCTION construct (stream_msg IN aq$_jms_stream_message) RETURN aq$_jms_message, STATIC FUNCTION construct (map_msg IN aq$_jms_map_message) RETURN aq$_jms_message, STATIC FUNCTION construct (object_msg IN aq$_jms_object_message) RETURN aq$_jms_message, MEMBER FUNCTION cast_to_bytes_msg RETURN aq$_jms_bytes_message, MEMBER FUNCTION cast_to_map_msg RETURN aq$_jms_map_message, MEMBER FUNCTION cast_to_object_msg RETURN aq$_jms_object_message, MEMBER FUNCTION cast_to_stream_msg RETURN aq$_jms_stream_message, MEMBER FUNCTION cast_to_text_msg RETURN aq$_jms_text_message, MEMBER PROCEDURE set_replyto (replyto IN sys.aq$_agent), MEMBER PROCEDURE set_type (type IN VARCHAR), MEMBER PROCEDURE set_userid (userid IN VARCHAR), MEMBER PROCEDURE set_appid (appid IN VARCHAR), MEMBER PROCEDURE set_groupid (groupid IN VARCHAR), MEMBER PROCEDURE set_groupseq (groupseq IN INT), MEMBER FUNCTION get_replyto RETURN sys.aq$_agent, MEMBER FUNCTION get_type RETURN VARCHAR, MEMBER FUNCTION get_userid RETURN VARCHAR, MEMBER FUNCTION get_appid RETURN VARCHAR, MEMBER FUNCTION get_groupid RETURN VARCHAR, MEMBER FUNCTION get_groupseq RETURN INT, MEMBER PROCEDURE clear_properties, MEMBER PROCEDURE set_boolean_property (property_name IN VARCHAR, property_value IN BOOLEAN), MEMBER PROCEDURE set_byte_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_double_property (property_name IN VARCHAR, property_value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float_property (property_name IN VARCHAR, property_value IN FLOAT), MEMBER PROCEDURE set_int_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_long_property (property_name IN VARCHAR, property_value IN NUMBER), MEMBER PROCEDURE set_short_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_string_property (property_name IN VARCHAR, property_value IN VARCHAR), MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR) RETURN BOOLEAN, MEMBER FUNCTION get_byte_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_double_property (property_name IN VARCHAR) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float_property (property_name IN VARCHAR) RETURN FLOAT, MEMBER FUNCTION get_int_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_long_property (property_name IN VARCHAR) RETURN NUMBER, MEMBER FUNCTION get_short_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_string_property (property_name IN VARCHAR) RETURN VARCHAR, MEMBER PROCEDURE set_text (payload IN VARCHAR2), MEMBER PROCEDURE set_text (payload IN CLOB), MEMBER PROCEDURE set_bytes (payload IN RAW), MEMBER PROCEDURE set_bytes (payload IN BLOB), MEMBER PROCEDURE get_text (payload OUT VARCHAR2), MEMBER PROCEDURE get_text (payload OUT CLOB), MEMBER PROCEDURE get_bytes (payload OUT RAW), MEMBER PROCEDURE get_bytes (payload OUT BLOB));
このタイプには、6種類のCONSTRUCT
静的ファンクションがあります。
aq$_jms_message
のインスタンスを作成します。このインスタンスは、固有タイプのJMSメッセージ(TextMessage、BytesMessage、MapMessage、StreamMessageまたはObjectMessage)を保持できます。作成されたaq$_jms_message
インスタンスのメッセージ・タイプは、構成メソッドに渡されるmtype
パラメータによって異なります。構成後のメッセージは、保持用に構成されたJMSメッセージ・タイプの格納に使用できます。
mtype
パラメータは、「Oracle JMSタイプの定数」に示されている定数のいずれかである必要があります。
DBMS_AQ.JMS_TEXT_MESSAGE DBMS_AQ.JMS_BYTES_MESSAGE DBMS_AQ.JMS_STREAM_MESSAGE DBMS_AQ.JMS_MAP_MESSAGE DBMS_AQ.JMS_OBJECT_MESSAGE
aq$_jms_text_message
からaq$_jms_message
を作成します。
aq$_jms_bytes_message
からaq$_jms_message
を作成します。
aq$_jms_stream_message
からaq$_jms_message
を作成します。
aq$_jms_map_message
からaq$_jms_message
を作成します。
aq$_jms_object_message
からaq$_jms_message
を作成します。
aq$_jms_message
からaq$_jms_bytes_message
に変換します。aq$_jms_bytes_message
を戻します。また、aq$_jms_message
のmessage_type
属性がDBMS_AQ.JMS_BYTES_MESSAGE
でない場合は、NULLを戻します。aq$_jms_message
のmessage_type
フィールドがDBMS_AQJMS.JMS_BYTES_MESSAGE
でない場合は、ORA-24198が発生します。
aq$_jms_message
からaq$_jms_map_message
に変換します。aq$_jms_map_message
を戻します。また、aq$_jms_message
のmessage_type
属性がDBMS_AQ.JMS_MAP_MESSAGE
でない場合は、NULLを戻します。aq$_jms_message
のmessage_type
フィールドがDBMS_AQJMS.JMS_MAP_MESSAGE
でない場合は、ORA-24198が発生します。
aq$_jms_message
からaq$_jms_object_message
に変換します。aq$_jms_object_message
を戻します。また、aq$_jms_message
のmessage_type
属性がDBMS_AQ.JMS_OBJECT_MESSAGE
でない場合は、NULLを戻します。aq$_jms_message
のmessage_type
フィールドがDBMS_AQJMS.JMS_OBJECT_MESSAGE
でない場合は、ORA-24198が発生します。
aq$_jms_message
からaq$_jms_stream_message
に変換します。aq$_jms_stream_message
を戻します。また、aq$_jms_message
のmessage_type
属性がDBMS_AQ.JMS_STREAM_MESSAGE
でない場合は、NULLを戻します。aq$_jms_message
のmessage_type
フィールドがDBMS_AQJMS.JMS_STREAM_MESSAGE
でない場合は、ORA-24198が発生します。
aq$_jms_message
からaq$_jms_text_message
に変換します。aq$_jms_text_message
を戻します。また、aq$_jms_message
のmessage_type
属性がDBMS_AQ.JMS_TEXT_MESSAGE
でない場合は、NULLを戻します。aq$_jms_message
のmessage_type
フィールドがDBMS_AQJMS.JMS_TEXT_MESSAGE
でない場合は、ORA-24198が発生します。
JMSReplyTo
に対応するreplyto
パラメータを設定します。
JMSReplyTo
に対応するreplyto
を戻します。
JMSType
に対応するJMSタイプを設定します(任意のテキストを設定できます)。
JMSType
に対応するtype
を戻します。
JMSXUserID
に対応するuserid
を設定します。
JMSXAppID
に対応するappid
を設定します。
JMSXGroupID
に対応するgroupid
を設定します。
JMSXGroupSeq
に対応するgroupseq
を設定します。
JMSXUserID
に対応するuserid
を戻します。
JMSXAppID
に対応するappid
を戻します。
JMSXGroupID
に対応するgroupid
を戻します。
JMSXGroupSeq
に対応するgroupseq
を戻します。
すべてのユーザー・プロパティをクリアします。このプロシージャは、システムのプロパティに影響を与えません。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
を内部表記(NUMBER
タイプ)に格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_nameがNULLか存在するかをチェックします。NULLでない場合は、property_value
が-128から127(8ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではBYTE
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
が-2147483648から2147483647(32ビット)の範囲内であるかどうかをチェックします。PL/SQLおよびOracle DatabaseでのINT
データ・タイプは38ビットであるため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
を格納します。PL/SQLおよびOracle DatabaseでのNUMBER
データ・タイプは38ビットです。JavaでのLONGデータ・タイプは64ビットです。したがって、値の範囲チェックは必要ありません。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
が-32768から32767(16ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではSHORT
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。NULLでない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
対応するプロパティ名が存在し、かつ、そのプロパティがBOOLEAN
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがBYTE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがDOUBLE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがFLOAT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがINTEGER
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがLONG
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSHORT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSTRING
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
ペイロード(VARCHAR2
の値)を内部表記に設定します。
ペイロード(CLOB
の値)を内部表記に設定します。
ペイロード(RAW
の値)を内部表記に設定します。
ペイロード(BLOB
の値)を内部表記に設定します。
ペイロードの内部表記をVARCHAR2
変数のペイロードに設定します。
ペイロードの内部表記をCLOB
変数のペイロードに設定します。
ペイロードの内部表記をRAW
変数のペイロードに設定します。
ペイロードの内部表記をBLOB
変数のペイロードに設定します。
このタイプは、TextMessage
をOracle Databaseアドバンスト・キューイングのキューに格納するためのADTです。
この項では、次の項目について説明します。
構文
TYPE AQ$_JMS_TEXT_MESSAGE AS OBJECT( header aq$_jms_header, text_len INT, text_vc varchar2(4000), text_lob clob, STATIC FUNCTION construct RETURN aq$_jms_text_message, MEMBER PROCEDURE set_replyto (replyto IN sys.aq$_agent), MEMBER PROCEDURE set_type (type IN VARCHAR), MEMBER FUNCTION get_replyto RETURN sys.aq$_agent, MEMBER FUNCTION get_type RETURN VARCHAR, MEMBER PROCEDURE set_userid (userid IN VARCHAR), MEMBER PROCEDURE set_appid (appid IN VARCHAR), MEMBER PROCEDURE set_groupid (groupid IN VARCHAR), MEMBER PROCEDURE set_groupseq (groupseq IN INT), MEMBER FUNCTION get_userid RETURN VARCHAR, MEMBER FUNCTION get_appid RETURN VARCHAR, MEMBER FUNCTION get_groupid RETURN VARCHAR, MEMBER FUNCTION get_groupseq RETURN INT, MEMBER PROCEDURE clear_properties, MEMBER PROCEDURE set_boolean_property(property_name IN VARCHAR, property_value IN BOOLEAN), MEMBER PROCEDURE set_byte_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_double_property (property_name IN VARCHAR, property_value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float_property (property_name IN VARCHAR, property_value IN FLOAT), MEMBER PROCEDURE set_int_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_long_property (property_name IN VARCHAR, property_value IN NUMBER), MEMBER PROCEDURE set_short_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_string_property (property_name IN VARCHAR, property_value IN VARCHAR), MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR) RETURN BOOLEAN, MEMBER FUNCTION get_byte_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_double_property (property_name IN VARCHAR) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float_property (property_name IN VARCHAR) RETURN FLOAT, MEMBER FUNCTION get_int_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_long_property (property_name IN VARCHAR) RETURN NUMBER, MEMBER FUNCTION get_short_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_string_property (property_name IN VARCHAR) RETURN VARCHAR, MEMBER PROCEDURE set_text (payload IN VARCHAR2), MEMBER PROCEDURE set_text (payload IN CLOB), MEMBER PROCEDURE get_text (payload OUT VARCHAR2), MEMBER PROCEDURE get_text (payload OUT CLOB));
空のaq$_jms_text_message
を作成します。
JMSのJMSReplyTo
に対応するreplyto
パラメータを設定します。
JMSのJMSType
に対応するJMSタイプを設定します(任意のテキストを設定できます)。
JMSReplyTo
に対応するreplyto
を戻します。
JMSType
に対応するtype
を戻します。
JMSのJMSXUserID
に対応するuserid
を設定します。
JMSのJMSXAppID
に対応するappid
を設定します。
JMSのJMSXGroupID
に対応するgroupid
を設定します。
JMSのJMSXGroupSeq
に対応するgroupseq
を設定します。
JMSXUserID
に対応するuserid
を戻します。
JMSXAppID
に対応するappid
を戻します。
JMSXGroupID
に対応するgroupid
を戻します。
JMSXGroupSeq
に対応するgroupseq
を戻します。
すべてのユーザー・プロパティをクリアします。このプロシージャは、システムのプロパティに影響を与えません。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を内部表記に格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-128から127(8ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではBYTE
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-2147483648から2147483647(32ビット)の範囲内であるかどうかをチェックします。PL/SQLおよびOracle DatabaseでのINT
データ・タイプは38ビットであるため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。PL/SQLおよびOracle DatabaseでのNUMBER
データ・タイプは38ビットです。JavaでのLONG
データ・タイプは64ビットです。したがって、値の範囲チェックは必要ありません。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-32768から32767(16ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではSHORT
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
対応するプロパティ名が存在し、かつ、そのプロパティがBOOLEAN
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがBYTE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがDOUBLE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがFLOAT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがINTEGER
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがLONG
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSHORT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSTRING
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
このタイプは、BytesMessage
をOracle Databaseアドバンスト・キューイングのキューに格納するためのADTです。
この項では、次の項目について説明します。
構文
TYPE AQ$_JMS_BYTES_MESSAGE AS OBJECT( header aq$_jms_header, bytes_len INT, bytes_raw raw(2000), bytes_lob blob, STATIC FUNCTION construct RETURN aq$_jms_bytes_message, MEMBER PROCEDURE set_replyto (replyto IN sys.aq$_agent), MEMBER PROCEDURE set_type (type IN VARCHAR), MEMBER FUNCTION get_replyto RETURN sys.aq$_agent, MEMBER FUNCTION get_type RETURN VARCHAR, MEMBER PROCEDURE set_userid (userid IN VARCHAR), MEMBER PROCEDURE set_appid (appid IN VARCHAR), MEMBER PROCEDURE set_groupid (groupid IN VARCHAR), MEMBER PROCEDURE set_groupseq (groupseq IN INT), MEMBER FUNCTION get_userid RETURN VARCHAR, MEMBER FUNCTION get_appid RETURN VARCHAR, MEMBER FUNCTION get_groupid RETURN VARCHAR, MEMBER FUNCTION get_groupseq RETURN INT, MEMBER PROCEDURE clear_properties, MEMBER PROCEDURE set_boolean_property(property_name IN VARCHAR, property_value IN BOOLEAN), MEMBER PROCEDURE set_byte_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_double_property (property_name IN VARCHAR, property_value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float_property (property_name IN VARCHAR, property_value IN FLOAT), MEMBER PROCEDURE set_int_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_long_property (property_name IN VARCHAR, property_value IN NUMBER), MEMBER PROCEDURE set_short_property (property_name IN VARCHAR, property_valuE IN INT), MEMBER PROCEDURE set_string_property (property_name IN VARCHAR, property_value IN VARCHAR), MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR) RETURN BOOLEAN, MEMBER FUNCTION get_byte_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_double_property (property_name IN VARCHAR) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float_property (property_name IN VARCHAR) RETURN FLOAT, MEMBER FUNCTION get_int_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_long_property (property_name IN VARCHAR) RETURN NUMBER, MEMBER FUNCTION get_short_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_string_property (property_name IN VARCHAR) RETURN VARCHAR, MEMBER PROCEDURE set_bytes (payload IN RAW), MEMBER PROCEDURE set_bytes (payload IN BLOB), MEMBER PROCEDURE get_bytes (payload OUT RAW), MEMBER PROCEDURE get_bytes (payload OUT BLOB), MEMBER FUNCTION prepare (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER PROCEDURE reset (id IN PLS_INTEGER), MEMBER PROCEDURE flush (id IN PLS_INTEGER), MEMBER PROCEDURE clear_body (id IN PLS_INTEGER), MEMBER PROCEDURE clean (id IN PLS_INTEGER), STATIC PROCEDURE clean_all, MEMBER FUNCTION get_mode (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_boolean (id IN PLS_INTEGER) RETURN BOOLEAN, MEMBER FUNCTION read_byte (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_bytes (id IN PLS_INTEGER, value OUT NOCOPY BLOB, length IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_char (id IN PLS_INTEGER) RETURN CHAR, MEMBER FUNCTION read_double (id IN PLS_INTEGER) RETURN DOUBLE PRECISION, MEMBER FUNCTION read_float (id IN PLS_INTEGER) RETURN FLOAT, MEMBER FUNCTION read_int (id IN PLS_INTEGER) RETURN INT, MEMBER FUNCTION read_long (id IN PLS_INTEGER) RETURN NUMBER, MEMBER FUNCTION read_short (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_unsigned_byte (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_unsigned_short (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER PROCEDURE read_utf (id IN PLS_INTEGER, value OUT NOCOPY CLOB), MEMBER PROCEDURE write_boolean (id IN PLS_INTEGER, value IN BOOLEAN), MEMBER PROCEDURE write_byte (id IN PLS_INTEGER, value IN PLS_INTEGER), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN RAW), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN BLOB), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN RAW, offset IN PLS_INTEGER, length IN PLS_INTEGER), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN BLOB, offset IN INT, length IN INT), MEMBER PROCEDURE write_char (id IN PLS_INTEGER, value IN CHAR), MEMBER PROCEDURE write_double (id IN PLS_INTEGER, value IN DOUBLE PRECISION), MEMBER PROCEDURE write_float (id IN PLS_INTEGER, value IN FLOAT), MEMBER PROCEDURE write_int (id IN PLS_INTEGER, value IN PLS_INTEGER), MEMBER PROCEDURE write_long (id IN PLS_INTEGER, value IN NUMBER), MEMBER PROCEDURE write_short (id IN PLS_INTEGER, value IN PLS_INTEGER), MEMBER PROCEDURE write_utf (id IN PLS_INTEGER, value IN VARCHAR2), MEMBER PROCEDURE write_utf (id IN PLS_INTEGER, value IN CLOB));
空のaq$_jms_bytes_message
を作成します。
JMSのJMSReplyTo
に対応するreplyto
パラメータを設定します。
JMSのJMSType
に対応するJMSタイプを設定します(任意のテキストを設定できます)。
JMSReplyTo
に対応するreplyto
を戻します。
JMSType
に対応するtype
を戻します。
JMSのJMSXUserID
に対応するuserid
を設定します。
JMSのJMSXAppID
に対応するappid
を設定します。
JMSのJMSXGroupID
に対応するgroupid
を設定します。
JMSのJMSXGroupSeq
に対応するgroupseq
を設定します。
JMSXUserID
に対応するuserid
を戻します。
JMSXAppID
に対応するappid
を戻します。
JMSXGroupID
に対応するgroupid
を戻します。
JMSXGroupSeq
に対応するgroupseq
を戻します。
すべてのユーザー・プロパティをクリアします。このプロシージャは、システムのプロパティに影響を与えません。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を内部表記に格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-128から127(8ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではBYTE
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-2147483648から2147483647(32ビット)の範囲内であるかどうかをチェックします。PL/SQLおよびOracle DatabaseでのINT
データ・タイプは38ビットであるため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。PL/SQLおよびOracle DatabaseでのNUMBER
データ・タイプは38ビットです。JavaでのLONG
データ・タイプは64ビットです。したがって、値の範囲チェックは必要ありません。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-32768から32767(16ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではSHORT
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
対応するプロパティ名が存在し、かつ、そのプロパティがBOOLEAN
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがBYTE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがDOUBLE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがFLOAT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがINTEGER
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがLONG
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSHORT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSTRING
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
ペイロード(RAW
の値)を内部表記に設定します。
ペイロード(BLOB
の値)を内部表記に設定します。
ペイロードの内部表記をRAW
変数のペイロードに設定します。ペイロードの長さが32767(PL/SQLでのRAW
の最大長)を超える場合は、ORA-24190が発生します。
ペイロードの内部表記をBLOB
変数のペイロードに設定します。
aq$_jms_bytes_messageに格納されたバイト配列を、JavaオブジェクトとしてJavaストアド・プロシージャにデコードします。デコード結果は、Jservセッション・メモリーに静的な変数として格納されます。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
また、このファンクションは、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定します。write_XXX
プロシージャの後続のコールにより、ORA-24196エラーが発生します。clear_body
プロシージャをコールすると、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定できます。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
最初にストリームの開始位置をリセットし、バイト・メッセージを読取り専用モードに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Jservの静的な変数のコンテンツをaq$_jms_bytes_message
と同期化します。このプロシージャは、基盤のアクセス・モードには影響を与えません。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャの静的な変数を空のペイロードに設定します。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
また、メッセージ・アクセス・モードをMESSAGE_ACCESS_WRITEONLY
に設定します。read_XXX
プロシージャの後続のコールにより、ORA-24196エラーが発生します。reset
またはprepare
プロシージャをコールすると、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定できます。書込み専用および読取り専用モードは、AQ$_JMS_BYTES_MESSAGE
のペイロード・ファンクションにのみ反映されます。ヘッダー・ファンクションには影響を与えません。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
Javaストアド・プロシージャ側で操作IDに対応するDataInputStream
またはDataOutputStream
をクローズし、クリーンアップします。このプロシージャをコールすることは、メモリー・リークの防止に非常に重要です。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャ側で、対応するタイプのメッセージ・ストアに含まれるすべてのメッセージをクローズし、クリーンアップします。このプロシージャでは、実行中にJavaストアド・プロシージャが例外をスローした場合、ORA-24197が発生します。
このメッセージの現行モードを戻します。戻り値は、SYS.dbms_jms.plsql.MESSAGE_ACCESS_READONLY
またはSYS.dbms_jms.plsql.MESSAGE_ACCESS_WRITEONLY
のどちらかです。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのブール値を読み取り、そのブール値を戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。パラメータid
は操作IDです。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのBYTE
値を読み取り、そのBYTE
値を戻します。ストリームの末尾に到達すると、NULLが戻されます。PL/SQLにはBYTE
タイプが存在しないため、Oracle DatabaseはPLS_INTEGER
を使用してBYTE
を表示します。PL/SQLユーザーがPLS_INTEGER
を取得しても、その値はJava BYTE
値の範囲内です。この値がwrite_byte
ファンクションにより発行されている場合、範囲外エラーにはなりません。パラメータid
は操作IDです。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージ・ストリームのバイト長の値を読み取り、その総バイト数を戻します。ストリームの末尾に到達し、読み取るデータがなくなった場合は、-1が戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージの文字値を読み取り、その文字値を戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのDOUBLE値を読み取り、その文字値を戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのFLOAT値を読み取り、そのFLOAT値を戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのINT
値を読み取り、そのINT
値を戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのLONG値を読み取り、そのLONG値を戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージのSHORT値を読み取り、そのSHORT値を戻します。ストリームの末尾に到達すると、NULLが戻されます。PL/SQLにはSHORTタイプが存在しないため、PLS_INTEGER
を使用してSHORT
を表示します。PL/SQLユーザーがPLS_INTEGER
を取得しても、その値はJava SHORT値の範囲内です。この値がwrite_short
ファンクションにより発行されている場合、範囲外エラーにはなりません。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージ・ストリームから符号なしの8ビット数値を読み取り、バイト・メッセージ・ストリームの次のバイトを符号なしの8ビット数値に解釈して戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト・メッセージ・ストリームから符号なしの16ビット数値を読み取り、バイト・メッセージ・ストリームの次の2バイトを符号なしの16ビット数値に解釈して戻します。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
UTF-8フォーマットを使用してエンコードされた文字列をバイト・メッセージから読み取ります。ストリームの末尾に到達すると、NULLが戻されます。バイト・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
BOOLEANを1バイトの値としてバイト・メッセージ・ストリームに書き込みます。値TRUE
は値(バイト)1として書き込まれます。値FALSE
は値(バイト)0として書き込まれます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイトをバイト・メッセージに書き込みます。PL/SQLにはBYTE
タイプが存在しないため、PLS_INTEGER
を使用してBYTE
を表示します。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイトの配列をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイトの配列をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列の一部をバイト・メッセージ・ストリームに書き込みます。パラメータoffset
は、バイト配列で最初のオフセットです。[offset, offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds例外がスローされ、このプロシージャによりORA-24197エラーが発生します。索引は0から開始します。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列の一部をバイト・メッセージ・ストリームに書き込みます。パラメータoffset
は、バイト配列で最初のオフセットです。[offset, offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds例外がスローされ、このプロシージャによりORA-24197エラーが発生します。索引は0から開始します。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字値をバイト・メッセージに書き込みます。値に複数の文字が設定されている場合は、最初の文字が書き込まれます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
DOUBLE値をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
FLOAT値をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
INT
値をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
LONG値をバイト・メッセージに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
SHORTを2バイトの値として、バイト数の大きな方から先に、バイト・メッセージに書き込みます。PL/SQLにはSHORTタイプが存在しないため、INT
を使用してSHORTを表示します。パラメータ値が有効な範囲を超えた場合は例外ORA-24193が、バイト・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、または操作IDが無効な場合はORA-24198が発生します。
システムに依存したUTF-8エンコーディングを使用し、文字列をバイト・メッセージ・ストリームに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
システムに依存したUTF-8エンコーディングを使用し、文字列をバイト・メッセージ・ストリームに書き込みます。バイト・メッセージが読取り専用モードの場合は例外ORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
このタイプは、MapMessage
をOracle Databaseアドバンスト・キューイングのキューに格納するためのADTです。
この項では、次の項目について説明します。
構文
TYPE aq$_jms_map_message AS object( header aq$_jms_header, bytes_len int, bytes_raw raw(2000), bytes_lob blob, STATIC FUNCTION construct RETURN aq$_jms_map_message, MEMBER PROCEDURE set_replyto (replyto IN sys.aq$_agent), MEMBER PROCEDURE set_type (type IN VARCHAR), MEMBER FUNCTION get_replyto RETURN sys.aq$_agent, MEMBER FUNCTION get_type RETURN VARCHAR, MEMBER PROCEDURE set_userid (userid IN VARCHAR), MEMBER PROCEDURE set_appid (appid IN VARCHAR), MEMBER PROCEDURE set_groupid (groupid IN VARCHAR), MEMBER PROCEDURE set_groupseq (groupseq IN INT), MEMBER FUNCTION get_userid RETURN VARCHAR, MEMBER FUNCTION get_appid RETURN VARCHAR, MEMBER FUNCTION get_groupid RETURN VARCHAR, MEMBER FUNCTION get_groupseq RETURN INT, MEMBER PROCEDURE clear_properties, MEMBER PROCEDURE set_boolean_property(property_name IN VARCHAR, property_value IN BOOLEAN), MEMBER PROCEDURE set_byte_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_double_property (property_name IN VARCHAR, property_value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float_property (property_name IN VARCHAR, property_value IN FLOAT), MEMBER PROCEDURE set_int_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_long_property (property_name IN VARCHAR, property_value IN NUMBER), MEMBER PROCEDURE set_short_property (property_name IN VARCHAR, property_valuE IN INT), MEMBER PROCEDURE set_string_property (property_name IN VARCHAR, property_value IN VARCHAR), MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR) RETURN BOOLEAN, MEMBER FUNCTION get_byte_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_double_property (property_name IN VARCHAR) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float_property (property_name IN VARCHAR) RETURN FLOAT, MEMBER FUNCTION get_int_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_long_property (property_name IN VARCHAR) RETURN NUMBER, MEMBER FUNCTION get_short_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_string_property (property_name IN VARCHAR) RETURN VARCHAR, MEMBER PROCEDURE set_bytes (payload IN RAW), MEMBER PROCEDURE set_bytes (payload IN BLOB), MEMBER PROCEDURE get_bytes (payload OUT RAW), MEMBER PROCEDURE get_bytes (payload OUT BLOB), MEMBER FUNCTION prepare (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER PROCEDURE flush (id IN PLS_INTEGER), MEMBER PROCEDURE clear_body (id IN PLS_INTEGER), MEMBER PROCEDURE clean (id IN PLS_INTEGER), STATIC PROCEDURE clean_all, MEMBER PROCEDURE set_boolean (id IN PLS_INTEGER, name IN VARCHAR2, value IN BOOLEAN), MEMBER PROCEDURE set_byte (id IN PLS_INTEGER, name IN VARCHAR2, value IN PLS_INTEGER), MEMBER PROCEDURE set_bytes (id IN PLS_INTEGER, name IN VARCHAR2, value IN RAW), MEMBER PROCEDURE set_bytes (id IN PLS_INTEGER, name IN VARCHAR2, value IN RAW, offset IN INT, length IN INT), MEMBER PROCEDURE set_bytes (id IN PLS_INTEGER, name IN VARCHAR2, value IN BLOB), MEMBER PROCEDURE set_bytes (id IN PLS_INTEGER, name IN VARCHAR2, value IN BLOB, offset IN INT, length IN INT), MEMBER PROCEDURE set_char (id IN PLS_INTEGER, name IN VARCHAR2, value IN CHAR), MEMBER PROCEDURE set_double (id IN PLS_INTEGER, name IN VARCHAR2, value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float (id IN PLS_INTEGER, name IN VARCHAR2, value IN FLOAT), MEMBER PROCEDURE set_int (id IN PLS_INTEGER, name IN VARCHAR2, value IN PLS_INTEGER), MEMBER PROCEDURE set_long (id IN PLS_INTEGER, name IN VARCHAR2, value IN NUMBER), MEMBER PROCEDURE set_short (id IN PLS_INTEGER, name IN VARCHAR2, value IN PLS_INTEGER), MEMBER PROCEDURE set_string (id IN PLS_INTEGER, name IN VARCHAR2, value IN VARCHAR2), MEMBER PROCEDURE set_string (id IN PLS_INTEGER, name IN VARCHAR2, value IN CLOB), MEMBER FUNCTION get_boolean (id IN PLS_INTEGER, name IN VARCHAR2) RETURN BOOLEAN, MEMBER FUNCTION get_byte (id IN PLS_INTEGER, name IN VARCHAR2) RETURN PLS_INTEGER, MEMBER PROCEDURE get_bytes (id IN PLS_INTEGER, name IN VARCHAR2, value OUT NOCOPY BLOB), MEMBER FUNCTION get_char (id IN PLS_INTEGER, name IN VARCHAR2) RETURN CHAR, MEMBER FUNCTION get_double (id IN PLS_INTEGER, name IN VARCHAR2) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float (id IN PLS_INTEGER, name IN VARCHAR2) RETURN FLOAT, MEMBER FUNCTION get_int (id IN PLS_INTEGER, name IN VARCHAR2) RETURN PLS_INTEGER, MEMBER FUNCTION get_long (id IN PLS_INTEGER, name IN VARCHAR2) RETURN NUMBER, MEMBER FUNCTION get_short (id IN PLS_INTEGER, name IN VARCHAR2) RETURN PLS_INTEGER, MEMBER PROCEDURE get_string (id IN PLS_INTEGER, name IN VARCHAR2, value OUT NOCOPY CLOB), MEMBER FUNCTION get_names (id IN PLS_INTEGER) RETURN aq$_jms_namearray, MEMBER FUNCTION get_names (id IN PLS_INTEGER, names OUT aq$_jms_namearray, offset IN PLS_INTEGER, length IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER PROCEDURE get_object (id IN PLS_INTEGER, name IN VARCHAR2, value OUT NOCOPY AQ$_JMS_VALUE), MEMBER FUNCTION get_size (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION item_exists (id IN PLS_INTEGER, name IN VARCHAR2) RETURN BOOLEAN);
空のaq$_jms_map_message
オブジェクトを作成します。
JMSのJMSReplyTo
に対応するreplyto
パラメータを設定します。
JMSのJMSType
に対応するJMSタイプを設定します(任意のテキストを設定できます)。
JMSReplyTo
に対応するreplyto
を戻します。
JMSType
に対応するtype
を戻します。
JMSのJMSXUserID
に対応するuserid
を設定します。
JMSのJMSXAppID
に対応するappid
を設定します。
JMSのJMSXGroupID
に対応するgroupid
を設定します。
JMSのJMSXGroupSeq
に対応するgroupseq
を設定します。
JMSXUserID
に対応するuserid
を戻します。
JMSXAppID
に対応するappid
を戻します。
JMSXGroupID
に対応するgroupid
を戻します。
JMSXGroupSeq
に対応するgroupseq
を戻します。
すべてのユーザー・プロパティをクリアします。このプロシージャは、システムのプロパティに影響を与えません。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を内部表記に格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-128から127(8ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではBYTE
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-2147483648から2147483647(32ビット)の範囲内であるかどうかをチェックします。PL/SQLおよびOracle DatabaseでのINT
データ・タイプは38ビットであるため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。PL/SQLおよびOracle DatabaseでのNUMBER
データ・タイプは38ビットです。JavaでのLONG
データ・タイプは64ビットです。したがって、値の範囲チェックは必要ありません。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-32768から32767(16ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではSHORT
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
対応するプロパティ名が存在し、かつ、そのプロパティがBOOLEAN
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがBYTE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがDOUBLE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがFLOAT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがINTEGER
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがLONG
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSHORT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSTRING
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
ペイロードを、解釈することなくRAW変数として設定します。aq$_jms_map_message
のペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、RAW変数として設定します。
ペイロードを、解釈することなくBLOB変数として設定します。aq$_jms_map_message
のペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、BLOB変数として設定します。
ペイロードを、解釈することなくRAW
変数に設定します。aq$_jms_map_message
のペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、RAW変数として取り出します。ペイロードの長さが32767を超える場合は、ORA-24190が発生します。
ペイロードを、解釈することなくBLOB
変数に設定します。aq$_jms_map_message
のペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、BLOB
変数として取り出します。
aq$_jms_map_message
に格納されたバイト配列を、JavaオブジェクトとしてJavaストアド・プロシージャにデコードします。デコード結果は、Jservセッション・メモリーに静的な変数として格納されます。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
Jservの静的な変数のコンテンツをaq$_jms_map_message
と同期化します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャの静的な変数を空のペイロードに設定します。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
Javaストアド・プロシージャ側で操作IDに対応するDataInputStream
またはDataOutputStream
をクローズし、クリーンアップします。このプロシージャをコールすることは、メモリー・リークの防止に非常に重要です。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャ側で、対応するタイプのメッセージ・ストアに含まれるすべてのメッセージをクローズし、クリーンアップします。このプロシージャでは、実行中にJavaストアド・プロシージャが例外をスローした場合、ORA-24197が発生します。
ブール値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
BYTE
値を、指定された名前でマップに設定します。PL/SQLにはBYTE
タイプが存在しないため、PLS_INTEGER
を使用してBYTEを表示します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列値の一部を、指定された名前でマップに設定します。パラメータoffset
はバイト配列で最初のオフセットで、パラメータlength
は使用するバイト数です。[offset … offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds
例外がスローされ、このプロシージャによりORA-24197エラーが発生します。索引は0から開始します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列値の一部を、指定された名前でマップに設定します。パラメータoffset
はバイト配列で最初のオフセットで、パラメータlength
は使用するバイト数です。[offset … offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds
例外がスローされ、このプロシージャによりORA-24197エラーが発生します。索引は0から開始します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字値を、指定された名前でマップに設定します。値に複数の文字が設定されている場合は、最初の文字が使用されます。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
DOUBLE値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
このプロシージャは、FLOAT値を指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
INT値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
LONG値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
SHORT値を、指定された名前でマップに設定します。PL/SQLにはSHORTタイプが存在しないため、PLS_INTEGER
を使用してSHORTを表示します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字列値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字列値を、指定された名前でマップに設定します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のブール値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のBYTE
値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。PL/SQLにはBYTE
タイプが存在しないため、PLS_INTEGER
を使用してBYTEを表示します。PL/SQLユーザーがPLS_INTEGER
を取得しても、その値はJava BYTE
値の範囲内です。この値がset_byte
ファンクションにより発行されている場合、範囲外エラーにはなりません。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のバイト配列値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。配列サイズはPL/SQL RAW
タイプの上限を超える場合があるため、BLOB
が常に戻されます。BLOB
のコピーが戻された場合は、メッセージ・ペイロードに影響を与えることなく変更できます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前の文字列値を取り出して、戻します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合は、ORA-24194が発生します。
指定した名前のDOUBLE値を取り出して、戻します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合は、ORA-24194が発生します。
指定した名前のFLOAT値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のINT
値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のLONG値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前のSHORT値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。PL/SQLにはSHORT
タイプが存在しないため、INT
を使用してSHORT
を表示します。PL/SQLユーザーがPLS_INTEGER
を取得しても、その値はJava SHORT値の範囲内です。この値がset_short
ファンクションにより発行されている場合、範囲外エラーにはなりません。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
指定した名前の文字列値を取り出します。この名前の項目が存在しない場合は、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
マップ・メッセージ内のすべての名前を取り出し、VARRAYに戻します。aq$_jms_namearray
のサイズは1024で各エレメントはVARCHAR(200)
であるため、ペイロードの名前配列が上限を超えているとエラーが戻されます。名前配列または名前のサイズが上限を超えた場合は、ORA-24195が発生します。
マップ・メッセージ内の名前の一部を取り出します。aq$_jms_namearray
のサイズは1024で、各エレメントはVARCHAR(200)
であるため、取り出す際にどちらかが上限を超えているとエラーが戻されます。(つまり、1024を超える値をlength
パラメータに設定することはできません。)マップ・メッセージの名前の索引は0から開始します。パラメータoffset
は、取出しを開始するオフセットです。
ファンクションは、取り出した名前の数を戻します。間隔[offset, offset+length-1]と間隔[0, size-1](sizeはマップ・メッセージのサイズ)の共通部分が名前として取り出されます。共通部分が空のセットの場合、名前はNULL、取り出した名前の数は0で戻されます。小さなステップで名前の取出しを繰り返すと、マップ・メッセージから読み取る名前が残っているかどうかテストできます。
名前配列または名前のサイズが上限を超えている場合はORA-24195が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
一般的な値であるADT AQ$_JMS_VALUE
を戻します。この名前の項目が存在しない場合はNULLが戻されます。このADTのtype
属性を使用すると、データを解析できます。dbms_jms_plsql
パッケージ定数、Javaデータ・タイプおよびAQ$_JMS_VALUE
属性の対応値は、AQ$_JMS_VALUE
ADTのマップを参照してください。このメンバー・プロシージャは、他のget
メンバー・プロシージャまたはファンクションに比べ、オーバーヘッドが多くなることがあることに注意してください。メッセージ内のフィールドのデータ・タイプがあらかじめわかっていない場合にのみ使用します。そうでない場合は、特定のget
メンバー・プロシージャまたはファンクションの使用をお薦めします。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
マップ・メッセージのサイズを取り出します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
TRUE
が戻されると、このマップ・メッセージに項目が存在することを示します。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
このタイプは、StreamMessage
をOracle Databaseアドバンスト・キューイングのキューに格納するためのADTです。
この項では、次の項目について説明します。
構文
TYPE aq$_jms_stream_message AS object( header aq$_jms_header, bytes_len int, bytes_raw raw(2000), bytes_lob blob, STATIC FUNCTION construct RETURN aq$_jms_stream_message, MEMBER PROCEDURE set_replyto (replyto IN sys.aq$_agent), MEMBER PROCEDURE set_type (type IN VARCHAR), MEMBER FUNCTION get_replyto RETURN sys.aq$_agent, MEMBER FUNCTION get_type RETURN VARCHAR, MEMBER PROCEDURE set_userid (userid IN VARCHAR), MEMBER PROCEDURE set_appid (appid IN VARCHAR), MEMBER PROCEDURE set_groupid (groupid IN VARCHAR), MEMBER PROCEDURE set_groupseq (groupseq IN INT), MEMBER FUNCTION get_userid RETURN VARCHAR, MEMBER FUNCTION get_appid RETURN VARCHAR, MEMBER FUNCTION get_groupid RETURN VARCHAR, MEMBER FUNCTION get_groupseq RETURN INT, MEMBER PROCEDURE clear_properties, MEMBER PROCEDURE set_boolean_property(property_name IN VARCHAR, property_value IN BOOLEAN), MEMBER PROCEDURE set_byte_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_double_property (property_name IN VARCHAR, property_value IN DOUBLE PRECISION), MEMBER PROCEDURE set_float_property (property_name IN VARCHAR, property_value IN FLOAT), MEMBER PROCEDURE set_int_property (property_name IN VARCHAR, property_value IN INT), MEMBER PROCEDURE set_long_property (property_name IN VARCHAR, property_value IN NUMBER), MEMBER PROCEDURE set_short_property (property_name IN VARCHAR, property_valuE IN INT), MEMBER PROCEDURE set_string_property (property_name IN VARCHAR, property_value IN VARCHAR), MEMBER FUNCTION get_boolean_property (property_name IN VARCHAR) RETURN BOOLEAN, MEMBER FUNCTION get_byte_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_double_property (property_name IN VARCHAR) RETURN DOUBLE PRECISION, MEMBER FUNCTION get_float_property (property_name IN VARCHAR) RETURN FLOAT, MEMBER FUNCTION get_int_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_long_property (property_name IN VARCHAR) RETURN NUMBER, MEMBER FUNCTION get_short_property (property_name IN VARCHAR) RETURN INT, MEMBER FUNCTION get_string_property (property_name IN VARCHAR) RETURN VARCHAR, MEMBER PROCEDURE set_bytes (payload IN RAW), MEMBER PROCEDURE set_bytes (payload IN BLOB), MEMBER PROCEDURE get_bytes (payload OUT RAW), MEMBER PROCEDURE get_bytes (payload OUT BLOB), MEMBER FUNCTION prepare (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER PROCEDURE reset (id IN PLS_INTEGER), MEMBER PROCEDURE flush (id IN PLS_INTEGER), MEMBER PROCEDURE clear_body (id IN PLS_INTEGER), MEMBER PROCEDURE clean (id IN PLS_INTEGER), STATIC PROCEDURE clean_all, MEMBER FUNCTION get_mode (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_boolean (id IN PLS_INTEGER) RETURN BOOLEAN, MEMBER FUNCTION read_byte (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_bytes (id IN PLS_INTEGER) RETURN BLOB, MEMBER PROCEDURE read_bytes (id IN PLS_INTEGER, value OUT NOCOPY BLOB), MEMBER FUNCTION read_char (id IN PLS_INTEGER) RETURN CHAR, MEMBER FUNCTION read_double (id IN PLS_INTEGER) RETURN DOUBLE PRECISION, MEMBER FUNCTION read_float (id IN PLS_INTEGER) RETURN FLOAT, MEMBER FUNCTION read_int (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_long (id IN PLS_INTEGER) RETURN NUMBER, MEMBER FUNCTION read_short (id IN PLS_INTEGER) RETURN PLS_INTEGER, MEMBER FUNCTION read_string RETURN CLOB, MEMBER PROCEDURE read_string (id IN PLS_INTEGER, value OUT NOCOPY CLOB), MEMBER PROCEDURE read_object (id IN PLS_INTEGER, value OUT NOCOPY AQ$_JMS_VALUE), MEMBER PROCEDURE write_boolean (id IN PLS_INTEGER, value IN BOOLEAN), MEMBER PROCEDURE write_byte (id IN PLS_INTEGER, value IN INT), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN RAW), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN RAW, offset IN INT, length IN INT), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN BLOB), MEMBER PROCEDURE write_bytes (id IN PLS_INTEGER, value IN BLOB, offset IN INT, length IN INT), MEMBER PROCEDURE write_char (id IN PLS_INTEGER, value IN CHAR), MEMBER PROCEDURE write_double (id IN PLS_INTEGER, value IN DOUBLE PRECISION), MEMBER PROCEDURE write_float (id IN PLS_INTEGER, value IN FLOAT), MEMBER PROCEDURE write_int (id IN PLS_INTEGER, value IN PLS_INTEGER), MEMBER PROCEDURE write_long (id IN PLS_INTEGER, value IN NUMBER), MEMBER PROCEDURE write_short (id IN PLS_INTEGER, value IN PLS_INTEGER), MEMBER PROCEDURE write_string (id IN PLS_INTEGER, value IN VARCHAR2), MEMBER PROCEDURE write_string (id IN PLS_INTEGER, value IN CLOB));
空のaq$_jms_stream_message
オブジェクトを作成します。
JMSのJMSReplyTo
に対応するreplyto
パラメータを設定します。
JMSのJMSType
に対応するJMSタイプを設定します(任意のテキストを設定できます)。
JMSReplyTo
に対応するreplyto
を戻します。
JMSType
に対応するtype
を戻します。
JMSのJMSXUserID
に対応するuserid
を設定します。
JMSのJMSXAppID
に対応するappid
を設定します。
JMSのJMSXGroupID
に対応するgroupid
を設定します。
JMSのJMSXGroupSeq
に対応するgroupseq
を設定します。
JMSXUserID
に対応するuserid
を戻します。
JMSXAppID
に対応するappid
を戻します。
JMSXGroupID
に対応するgroupid
を戻します。
JMSXGroupSeq
に対応するgroupseq
を戻します。
すべてのユーザー・プロパティをクリアします。このプロシージャは、システムのプロパティに影響を与えません。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を内部表記に格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-128から127(8ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではBYTE
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-2147483648から2147483647(32ビット)の範囲内であるかどうかをチェックします。PL/SQLおよびOracle DatabaseでのINT
データ・タイプは38ビットであるため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。PL/SQLおよびOracle DatabaseでのNUMBER
データ・タイプは38ビットです。JavaでのLONG
データ・タイプは64ビットです。したがって、値の範囲チェックは必要ありません。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
が-32768から32767(16ビット)の範囲内であるかどうかをチェックします。PL/SQLまたはRDBMSではSHORT
データ・タイプが定義されないため、このチェックが必要です。プロパティ名が存在する場合はORA-24191が、プロパティ名がNULLの場合はORA-24192が、またプロパティ値が有効な範囲を超えている場合はORA-24193が発生します。
property_name
がNULLか存在するかをチェックします。存在しない場合は、property_value
を格納します。プロパティ名が存在する場合はORA-24191が、またプロパティ名がNULLの場合はORA-24192が発生します。
対応するプロパティ名が存在し、かつ、そのプロパティがBOOLEAN
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがBYTE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがDOUBLE
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがFLOAT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがINTEGER
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがLONG
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSHORT
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
対応するプロパティ名が存在し、かつ、そのプロパティがSTRING
プロパティである場合は、プロパティの値が戻されます。それ以外の場合はNULLが戻されます。
ペイロードを、解釈することなくRAW変数に設定します。aq$_jms_stream_message
タイプのペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、RAW変数として取り出します。ペイロードの長さが32767を超える場合は、ORA-24190が発生します。
ペイロードを、解釈することなくBLOB変数に設定します。aq$_jms_stream_message
タイプのペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、BLOB
として取り出します。
ペイロードを、解釈することなくRAW変数として設定します。aq$_jms_stream_message
タイプのペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、RAW変数として設定します。
ペイロードを、解釈することなくBLOB
変数として設定します。aq$_jms_stream_message
タイプのペイロードは、RAW
またはBLOB
のどちらかとしてデータベースに格納されます。このメンバー・ファンクションは、ペイロードを解釈することなく、BLOB
として設定します。
aq$_jms_stream_message
に格納されたバイト配列を、JavaオブジェクトとしてJavaストアド・プロシージャにデコードします。デコード結果は、Jservセッション・メモリーに静的な変数として格納されます。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
また、このファンクションは、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定します。write_XXX
プロシージャの後続のコールにより、ORA-24196エラーが発生します。clear_body
プロシージャをコールすると、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定できます。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
最初にストリームの開始位置をリセットし、ストリーム・メッセージをMESSAGE_ACCESS_READONLY
モードに設定します。
Jservの静的な変数のコンテンツをaq$_jms_stream_message
と同期化します。このプロシージャは、基盤のアクセス・モードには影響を与えません。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャの静的な変数を空のペイロードに設定します。パラメータid
は、Javaオブジェクトが格納されているOracle Database JVMセッション・メモリー内の場所を特定するために使用されます。id
がNULLの場合は、PL/SQLオブジェクトに対して新しいスロットが作成されます。ペイロードにおけるこれ以降のJMS操作では、この操作IDが必要となります。
また、メッセージ・アクセス・モードをMESSAGE_ACCESS_WRITEONLY
に設定します。read_XXX
プロシージャの後続のコールにより、ORA-24196エラーが発生します。reset
またはprepare
プロシージャをコールすると、メッセージ・アクセス・モードをMESSAGE_ACCESS_READONLY
に設定できます。書込み専用および読取り専用モードは、AQ$_JMS_BYTES_MESSAGE
のペイロード・ファンクションにのみ反映されます。ヘッダー・ファンクションには影響を与えません。
Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、操作IDが無効な場合はORA-24198が、またJavaストアド・プロシージャのメッセージ・ストアがオーバーフローするとORA-24199が発生します。
Javaストアド・プロシージャ側で操作IDに対応するDataInputStream
またはDataOutputStream
をクローズし、クリーンアップします。このプロシージャをコールすることは、メモリー・リークの防止に非常に重要です。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
Javaストアド・プロシージャ側で、対応するタイプのメッセージ・ストアに含まれるすべてのメッセージをクローズし、クリーンアップします。このプロシージャでは、実行中にJavaストアド・プロシージャが例外をスローした場合、ORA-24197が発生します。
このメッセージの現行モードを戻します。戻り値は、SYS.dbms_aqjms.READ_ONLY
またはSYS.dbms_aqjms.WRITE_ONLY
のどちらかです。Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのブール値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのバイト値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。PL/SQLにはBYTE
タイプが存在しないため、INT
を使用してBYTEを表示します。PL/SQLユーザーがINT
を取得しても、その値はJava BYTE
値の範囲内です。この値がwrite_byte
ファンクションにより発行されている場合、範囲外エラーにはなりません。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのバイト配列を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が発生します。
ストリーム・メッセージのバイト配列を読み取ります。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージの文字値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのDOUBLEを読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのFLOAT値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのINT
値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのLONG値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージのSHORT値を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。PL/SQLにはSHORTタイプが存在しないため、PLS_INTEGER
を使用してSHORT
を表示します。PL/SQLユーザーがINT
を取得しても、その値はJava SHORT値の範囲内です。この値がwrite_short
ファンクションにより発行されている場合、範囲外エラーにはなりません。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ストリーム・メッセージの文字列を読み取り、戻します。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が発生します。
ストリーム・メッセージの文字列を読み取ります。メッセージ・ストリームの末尾に到達すると、NULLが戻されます。実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
一般的な値であるADT AQ$_JMS_VALUE
を戻します。このADTのtype属性を使用すると、データを解析できます。dbms_jms_plsqlパッケージ定数、Javaデータ・タイプおよびAQ$_JMS_VALUE
属性の対応値は、表274-2
を参照してください。このメンバー・プロシージャは、他のreadメンバー・プロシージャまたはファンクションに比べ、オーバーヘッドが多くなることがあります。メッセージ内のフィールドのデータ・タイプがあらかじめわかっていない場合にのみ使用します。そうでない場合は、特定のreadメンバー・プロシージャまたはファンクションの使用をお薦めします。
実際の値のタイプと予想されるタイプとの変換が無効な場合はORA-24194が、ストリーム・メッセージが書込み専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
ブールをストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイトをストリーム・メッセージに書き込みます。PL/SQLにはBYTE
タイプが存在しないため、INT
を使用してBYTEを表示します。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列フィールドをストリーム・メッセージに書き込みます。連続して書き込まれたバイト配列フィールドは、個別の2つのフィールドとして読み取られます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列フィールドの一部を、バイト配列フィールドとしてストリーム・メッセージに書き込みます。連続して書き込まれたバイト配列フィールドは、個別の2つのフィールドとして読み取られます。パラメータoffset
はバイト配列で最初のオフセットで、パラメータlength
は使用するバイト数です。[offset, offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds
例外がスローされます。索引は0から開始します。
ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列フィールドをストリーム・メッセージに書き込みます。連続して書き込まれたバイト配列フィールドは、個別の2つのフィールドとして読み取られます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
バイト配列フィールドの一部を、バイト配列フィールドとしてストリーム・メッセージに書き込みます。連続して書き込まれたバイト配列フィールドは、個別の2つのフィールドとして読み取られます。パラメータoffset
はバイト配列で最初のオフセットで、パラメータlength
は使用するバイト数です。[offset, offset+length]がバイト配列値の範囲を超えた場合、Javaストアド・プロシージャでJava IndexOutOfBounds
例外がスローされます。索引は0から開始します。
ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字値をストリーム・メッセージに書き込みます。値に複数の文字が設定されている場合は、最初の文字が書き込まれます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
DOUBLEをストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
FLOATをストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
INT
をストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
LONGをストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
SHORTをストリーム・メッセージに書き込みます。PL/SQLにはSHORTタイプが存在しないため、INT
を使用してSHORTを表示します。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字列をストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
文字列をストリーム・メッセージに書き込みます。ストリーム・メッセージが読取り専用モードの場合はORA-24196が、Javaストアド・プロシージャが実行中に例外をスローした場合はORA-24197が、また操作IDが無効な場合はORA-24198が発生します。
このタイプは、ObjectMessage
をOracle Databaseアドバンスト・キューイングのキューに格納するためのADTです。
構文
TYPE aq$_jms_object_message AS object( header aq$_jms_header, bytes_len int, bytes_raw raw(2000), bytes_lob blob);
このタイプは、aq$_jms_map_message
のget_names
プロシージャから戻される名前配列を表示します。このタイプの名前の最大数は1024です。各名前の最大長は200文字です。
構文
CREATE OR REPLACE TYPE AQ$_JMS_NAMEARRAY AS VARRAY(1024) OF VARCHAR(100);
使用上の注意
メッセージ・ペイロードの名前配列が1024を超える場合は、次のファンクションを使用して複数の部分に含まれる名前を取り出します。
MEMBER FUNCTION get_names(id IN PLS_INTEGER, names OUT aq$_jms_namearray, offset IN PLS_INTEGER, length IN PLS_INTEGER) RETURN PLS_INTEGER;
このタイプは、aq$_jms_map_message
のget_object
プロシージャおよびaq$_jms_stream_message
のread_object
プロシージャから戻される一般データを表示します。このADTのtype
フィールドは、このオブジェクトが保持しているデータ・タイプの決別に使用されます。表274-2に、sys.dbms_jms_plsql
タイプの定数、対応するJavaタイプ、およびデータを効率的に保持するADT aq$_jms_value
のデータ・フィールド間のマッピングを示します。
構文
CREATE OR REPLACE TYPE AQ$_JMS_VALUE AS object( type number(2), num_val number, char_val char(1), text_val clob, bytes_val blob);
表274-2 AQ$_JMS_VALUEタイプのフィールドおよびJavaフィールド
タイプ | Javaタイプ | aq$_jms_valueデータ・フィールド |
---|---|---|
|
BYTE |
num_val |
|
SHORT |
num_val |
|
INT |
num_val |
|
LONG |
num_val |
|
FLOAT |
num_val |
|
DOUBLE |
num_val |
|
BOOLEAN |
num_val: 0 FALSE, 1 TRUE |
|
CHAR |
char_val |
|
java.lang.String |
text_val |
|
byte[] |
bytes_val |
このタイプは、Javaストアド・プロシージャ側でスローされるJava例外を表示します。id
フィールドは、将来使用するために予約されています。exp_name
フィールドはJava例外名、err_msg
フィールドはJava例外のエラー・メッセージ、stack
フィールドはJava例外のスタック・トレースを格納します。
構文
CREATE OR REPLACE TYPE AQ$_JMS_EXCEPTION AS OBJECT ( id number, -- Reserved and not used. Right now always return 0. exp_name varchar(200), err_msg varchar(500), stack varchar(4000));