[SOA] A quick introduction and a fun database trick

Oracle SOA 11gでHTTP/MIMEでSOAPメッセージに添付した大きなペイロードを取り扱う場合の問題点とその回避策をご紹介します。
SOAエンジンはペイロードを一旦データベースに配置します。このステージングエリアはxxx_ias_tempという表領域で(データベースファイルはxxx_ias_temp.dbf)、Repository Creation Utility (RCU) で作成されますが、初期状態では非常に小さなファイルサイズになっています。
ファイルサイズ(表領域サイズ)は以下のクエリで確認できます。
SELECT   A.tablespace_name tablespace, D.filename, D.mb_total, 
          SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_used,
          D.mb_total - SUM (A.used_blocks * D.block_size) / 1024 / 1024 mb_free
FROM     v$sort_segment A,
          ( 
         SELECT   B.name, C.name filename, C.block_size, SUM (C.bytes) / 1024 / 1024 mb_total
         FROM     v$tablespace B, v$tempfile C
         WHERE    B.ts#= C.ts#
         GROUP BY B.name, C.block_size, C.name
         ) D
WHERE    A.tablespace_name = D.name
GROUP by A.tablespace_name, D.filename, D.mb_total;
SOAP with Attachmentsで扱うペイロードの最大値よりも表領域のサイズが小さい場合には、表領域を拡大する必要があります。
alter database tempfile '<path>_iastemp.dbf' resize 512M;
この例では表領域サイズを512MBに拡大しています。必要に応じて表領域を拡大してください。


原文はこちら。
http://blogs.oracle.com/ateamsoab2b/entry/a_quick_introduction_and_a

0 件のコメント:

コメントを投稿