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 Streams AQには、次のJMS ADT向けのメンバー・ファンクションが用意されています。
aq$_jms_header
aq$_jms_message
aq$_jms_text_message
aq$_jms_bytes_message
aq$_jms_map_message
aq$_jms_stream_message
Oracle Streams AQには、移入および解釈を行う上記のメンバー・ファンクションに加え、次の機能も備わっています。
aq$_jms_messageとその他のメッセージのADT間でのキャスト
JMSセレクタから同等のOracle Streams AQルールへ変換するPL/SQLストアド・プロシージャ
データ・タイプは、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 Streams AQの今回のリリースでは、次のメンバー・ファンクションにより、解釈を省略して、ペイロードを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 Streams AQキューに異なるタイプのメッセージを格納するために、一般的なメッセージを表示する場合に使用されます。Oracle Streams AQは、このADTと特定のメッセージ・タイプのADT間のアップキャストおよびダウンキャストをサポートすることによって、aq$_jms_messageの取出しおよび移入をサポートしています。
aq$_jms_messageを読み取るには、最初に、そのmessage_typeフィールドに基づいて、固有のメッセージ・タイプにダウンキャストする必要があります。
aq$_jms_messageを移入するには、固有のメッセージをまず移入し、それをaq$_jms_messageにアップキャストする必要があります。これにより、他の固有メッセージのADTのすべてのメンバー・ファンクションが、このADTにコピーされることを防ぎます。また、このADTの操作と他の固有メッセージのADTの操作の一貫性が保証されます。
表247-1に、Oracle JMSタイプに関連するエラーを示します。
表247-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 Streams AQキューのADTタイプを指定します。JMSセレクタをOracle Streams AQルールに変換する場合に便利です。
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 Streams AQルールへの変換を支援するストアド・プロシージャが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 Streams AQルール(変換エラーが発生した場合はNULL)。
例外
実行中にJavaストアド・プロシージャが例外をスローした場合はORA-24197が発生します。
2番目のプロシージャは、1番目に加え、dest_pload_typeパラメータも使用します。このパラメータがSYS.dbms_jms_plsql.DESTPLOAD_JMSTYPEまたはSYS.dbms_jms_plsql.DESTPLOAD_ANYDATAである場合にのみ、JMSセレクタからOracle Streams AQルールへの変換が行われます。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 Streams AQルール(変換エラーが発生した場合は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 Streams AQルールへの変換が行われます。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 Streams AQルール(変換エラーが発生した場合は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変数のペイロードに設定します。
このタイプは、Oracle Streams AQキューのTextMessageメッセージを格納するために使用する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が-21474836488から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が戻されます。
このタイプは、Oracle Streams AQキューのBytesMessageメッセージを格納するために使用する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が-21474836488から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を使用してBYTEを表示します。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が発生します。
このタイプは、Oracle Streams AQキューのMapMessageメッセージを格納するために使用する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が-21474836488から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が発生します。
このタイプは、Oracle Streams AQキューのStreamMessageメッセージを格納するために使用する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が-21474836488から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タイプが存在しないため、INTを使用してバイトを表示します。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属性の対応値は、表247-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が発生します。
このタイプは、Oracle Streams AQキューのObjectMessageメッセージを格納するために使用する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_NAMESARRAY 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フィールドは、このオブジェクトが保持しているデータ・タイプの決別に使用されます。表247-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);
表247-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));