oracle application server€¦ · oracle application server c api リファレンス、...

228
Oracle Application Server C API リファレンス リリース 4.0.8 1999 10 部品番号 : J00096-01

Upload: others

Post on 24-Jul-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Oracle Application Server

C API リファレンス

リリース 4.0.8

1999年 10月

部品番号 : J00096-01

Page 2: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Oracle Application Server C API リファレンス、 リリース 4.0.8

部品番号 : J00096-01

第 1版 1999年 10月

原本名:Oracle Application Server C API Reference, Release 4.0.8

原本著者:Seshu Adunuthula

原本協力者:Ramani Jagadeba, Alok Agrawal, Joe Ye

Copyright © 1999, Oracle Corporation. All rights reserved.

Printed in Japan.

制限付権利の説明

プログラムの使用、複製または開示は、オラクル社との契約に記された制約条件に従うものとします。著作権、特許権およびその他の知的財産権に関する法律により保護されています。

当ソフトウェア(プログラム)のリバース・エンジニアリングは禁止されております。

このドキュメントの情報は、予告なしに変更されることがあります。オラクル社は本ドキュメントの無謬性を保証しません。

* オラクル社とは、Oracle Corporation(米国オラクル)または日本オラクル株式会社(日本オラクル)を指します。

危険な用途への使用について

オラクル社製品は、原子力、航空産業、大量輸送、医療あるいはその他の危険が伴うアプリケーションを用途として開発されておりません。オラクル社製品を上述のようなアプリケーションに使用することについての安全確保は、顧客各位の責任と費用により行ってください。万一かかる用途での使用によりクレームや損害が発生いたしましても、日本オラクル株式会社と開発元である Oracle Corporation(米国オラクル)およびその関連会社は一切責任を負いかねます。 当プログラムを米国国防総省の米国政府機関に提供する際には、『Restricted Rights』と共に提供してください。この場合次の Legendが適用されます。

Restricted Rights Legend

Programs delivered subject to the DOD FAR Supplement are "commercial computer software" and use, duplication and disclosure of the Programs shall be subject to the licensing restrictions set forth in the applicable Oracle license agreement. Otherwise, Programs delivered subject to the Federal Acquisition Regulations are "restricted computer software" and use, duplication and disclosure of the Programs shall be subject to the restrictions in FAR 52.227-14, Rights in Data -- General, including Alternate III (June 1987). Oracle Corporation, 500 Oracle Parkway, Redwood City, CA 94065.

このドキュメントに記載されているその他の会社名および製品名は、あくまでその製品および会社を識別する目的にのみ使用されており、それぞれの所有者の商標または登録商標です。

Page 3: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

目次目次目次目次

はじめにはじめにはじめにはじめに ............................................................................................................................................................................ ix

第第第第 1章章章章 コールバックコールバックコールバックコールバック

WRBReturnCodeの値の値の値の値 ............................................................................................................................................ 1-2Entry-Point コールバックコールバックコールバックコールバック ...................................................................................................................................... 1-3initInstanceコールバックコールバックコールバックコールバック....................................................................................................................................... 1-5

initCartridge コールバックコールバックコールバックコールバック .................................................................................................................................... 1-7initRuntime コールバックコールバックコールバックコールバック ...................................................................................................................................... 1-8authorizeコールバックコールバックコールバックコールバック........................................................................................................................................... 1-9

execコールバックコールバックコールバックコールバック ................................................................................................................................................. 1-11reloadコールバックコールバックコールバックコールバック.............................................................................................................................................. 1-12versionコールバックコールバックコールバックコールバック ............................................................................................................................................ 1-13

version_freeコールバックコールバックコールバックコールバック.................................................................................................................................... 1-14shutdownInstanceコールバックコールバックコールバックコールバック.......................................................................................................................... 1-15shutdownCartridgeコールバックコールバックコールバックコールバック ....................................................................................................................... 1-16

shutdownRuntimeコールバックコールバックコールバックコールバック ......................................................................................................................... 1-17

第第第第 2章 基本章 基本章 基本章 基本 API

パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体........................................................................................................ 2-3

WAPIReturnCode の値の値の値の値........................................................................................................................................... 2-4WRB_addPBElem()................................................................................................................................................. 2-5WRB_annotateURL() .............................................................................................................................................. 2-7

WRB_apiVersion()................................................................................................................................................... 2-8WRB_copyPBlock()................................................................................................................................................. 2-9

WRB_createPBlock()............................................................................................................................................. 2-10

iii

Page 4: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_delPBElem()................................................................................................................................................ 2-11WRB_destroyPBlock()........................................................................................................................................... 2-12

WRB_findPBElem()............................................................................................................................................... 2-13WRB_findPBElemVal() ......................................................................................................................................... 2-14WRB_firstPBElem() .............................................................................................................................................. 2-15

WRB_flushData()................................................................................................................................................... 2-17WRB_getAppConfigSection()............................................................................................................................... 2-19WRB_getAppConfigVal()...................................................................................................................................... 2-24

WRB_getAppName()............................................................................................................................................. 2-25WRB_getCartridgeName().................................................................................................................................... 2-26WRB_getClientCert() ............................................................................................................................................ 2-27

WRB_getContext()................................................................................................................................................. 2-29WRB_getCookies()................................................................................................................................................. 2-30WRB_getEnvironment()........................................................................................................................................ 2-32

WRB_getListenerInfo() ......................................................................................................................................... 2-34WRB_getMultAppConfigSection()....................................................................................................................... 2-35WRB_getMultipartData() ..................................................................................................................................... 2-37

WRB_getORACLE_HOME() ............................................................................................................................... 2-39WRB_getParsedContent()..................................................................................................................................... 2-40WRB_getRequestInfo().......................................................................................................................................... 2-42

WRB_isEnterpriseEdition() .................................................................................................................................. 2-44WRB_nextPBElem().............................................................................................................................................. 2-45WRB_numPBElem().............................................................................................................................................. 2-47

WRB_printf() .......................................................................................................................................................... 2-48WRB_read()............................................................................................................................................................ 2-49WRB_recvHeaders().............................................................................................................................................. 2-50

WRB_sendHeader()............................................................................................................................................... 2-52WRB_setAuthBasic()............................................................................................................................................. 2-53WRB_setAuthDigest()............................................................................................................................................ 2-54

WRB_setAuthServer()........................................................................................................................................... 2-55WRB_setCookies()................................................................................................................................................. 2-57WRB_timestamp().................................................................................................................................................. 2-58

WRB_walkPBlock() ............................................................................................................................................... 2-59WRB_write() ........................................................................................................................................................... 2-61

第第第第 3章章章章 セッションセッションセッションセッション API

SAPIReturnCodeの値の値の値の値............................................................................................................................................. 3-2セッションの初期化関数と終了関数セッションの初期化関数と終了関数セッションの初期化関数と終了関数セッションの初期化関数と終了関数.................................................................................................................... 3-3

iv

Page 5: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_IsInSession().................................................................................................................................................. 3-4WRB_SessionEnable()............................................................................................................................................. 3-5

WRB_SessionEnd().................................................................................................................................................. 3-6WRB_SessionGetCtx()............................................................................................................................................. 3-7WRB_SessionGetCurrentHndl()............................................................................................................................3-8

WRB_SessionGetID().............................................................................................................................................. 3-9WRB_SessionGetIdleTm().................................................................................................................................... 3-10WRB_SessionSetCtx()............................................................................................................................................ 3-11

WRB_SessionSetIdleTm()..................................................................................................................................... 3-12WRB_SessionStart().............................................................................................................................................. 3-13

第第第第 4章章章章 Inter-Cartridge Exchange サービスサービスサービスサービス API

WRB_ICXcreateRequest()...................................................................................................................................... 4-2WRB_ICXdestroyRequest().................................................................................................................................... 4-3WRB_ICXfetchMoreData() .................................................................................................................................... 4-4

WRB_ICXgetHeaderVal() ...................................................................................................................................... 4-6WRB_ICXgetInfo() .................................................................................................................................................. 4-7WRB_ICXgetParsedHeader()................................................................................................................................. 4-9

WRB_ICXmakeRequest()..................................................................................................................................... 4-10WRB_ICXsetAuthInfo() ........................................................................................................................................ 4-12WRB_ICXsetContent().......................................................................................................................................... 4-13

WRB_ICXsetHeader()........................................................................................................................................... 4-14WRB_ICXsetMethod() .......................................................................................................................................... 4-15WRB_ICXsetNoProxy() ........................................................................................................................................ 4-16

WRB_ICXsetProxy() ............................................................................................................................................. 4-17WRB_ICXsetTXAttribute() .................................................................................................................................. 4-18WRB_ICXsetWalletInfo() ..................................................................................................................................... 4-19

第第第第 5章章章章 Logger サービスサービスサービスサービス API

ロギングのガイドラインロギングのガイドラインロギングのガイドラインロギングのガイドライン........................................................................................................................................ 5-1詳細レベル詳細レベル詳細レベル詳細レベル................................................................................................................................................................ 5-2

メッセージ・フォーマットメッセージ・フォーマットメッセージ・フォーマットメッセージ・フォーマット.................................................................................................................................... 5-3

エラーと警告メッセージのフォーマット.................................................................................................... 5-3

トレースとデバッグ・メッセージのフォーマット.................................................................................... 5-4

WRB_LOGopen() .................................................................................................................................................... 5-5WRB_LOGwriteMessage()..................................................................................................................................... 5-7WRB_LOGwriteAttribute() .................................................................................................................................... 5-9

v

Page 6: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGclose().................................................................................................................................................. 5-10

第第第第 6章 トランザクション・サービス章 トランザクション・サービス章 トランザクション・サービス章 トランザクション・サービス API

tx_annotate_path()................................................................................................................................................... 6-2tx_annotate_url()...................................................................................................................................................... 6-3tx_begin() .................................................................................................................................................................. 6-5

tx_close().................................................................................................................................................................... 6-6tx_commit() ............................................................................................................................................................... 6-7tx_info() ..................................................................................................................................................................... 6-8

tx_open().................................................................................................................................................................... 6-9tx_reg() .................................................................................................................................................................... 6-10tx_resume()............................................................................................................................................................. 6-11

tx_rollback() ............................................................................................................................................................ 6-12tx_set_transaction_property()............................................................................................................................... 6-13tx_set_transaction_timeout()................................................................................................................................. 6-14

tx_suspend()............................................................................................................................................................ 6-15TXINFO 構造体構造体構造体構造体 ..................................................................................................................................................... 6-16

第第第第 7章 コンテンツ・サービス章 コンテンツ・サービス章 コンテンツ・サービス章 コンテンツ・サービス API

WRB_CNTopenRepository().................................................................................................................................. 7-2WRB_CNTcloseRepository().................................................................................................................................. 7-4WRB_CNTopenDocument()................................................................................................................................... 7-5

WRB_CNTcloseDocument()................................................................................................................................... 7-6WRB_CNTdestroyDocument()............................................................................................................................... 7-7WRB_CNTgetAttributes() ...................................................................................................................................... 7-8

WRB_CNTsetAttributes() ..................................................................................................................................... 7-11WRB_CNTreadDocument().................................................................................................................................. 7-12WRB_CNTwriteDocument()................................................................................................................................. 7-13

WRB_CNTflushDocument()................................................................................................................................. 7-14WRB_CNTlistDocuments()................................................................................................................................... 7-15

第第第第 8章章章章 WDBC API

WDBCAPIReturnCode ........................................................................................................................................... 8-3WDBCInit() .............................................................................................................................................................. 8-4WDBCTerm() ........................................................................................................................................................... 8-5

WDBCGetDADCtx() ................................................................................................................................................ 8-6

vi

Page 7: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCDestroyDADCtx() ........................................................................................................................................ 8-7WDBCAddSession()................................................................................................................................................. 8-8

WDBCAddSessionFromDAD()............................................................................................................................... 8-9WDBCRemoveSession()........................................................................................................................................ 8-10WDBCInitRequestEnv()........................................................................................................................................ 8-11

WDBCTermRequestEnv().................................................................................................................................... 8-12WDBCGetPlsqlProcName().................................................................................................................................. 8-13WDBCGetQuery().................................................................................................................................................. 8-14

WDBCGetCGIEnv() .............................................................................................................................................. 8-15WDBCExecPlsqlProc().......................................................................................................................................... 8-16WDBCFetchHTPBuffer() ...................................................................................................................................... 8-18

WDBCCommitState()............................................................................................................................................ 8-19WDBCRollbackState()........................................................................................................................................... 8-20WDBCGetLastError() ........................................................................................................................................... 8-21

WDBCVersion() ..................................................................................................................................................... 8-22

付録付録付録付録 A Web Request Broker v2.0 基本基本基本基本 API

WRB カートリッジ関数のリターン・コードカートリッジ関数のリターン・コードカートリッジ関数のリターン・コードカートリッジ関数のリターン・コード ..................................................................................................... A-3

WRBErrorCode ....................................................................................................................................................... A-4WRBCallbacks構造体構造体構造体構造体 ............................................................................................................................................ A-5WRBEntry 構造体構造体構造体構造体 ................................................................................................................................................... A-6

WRBClientRead() .................................................................................................................................................... A-7WRBClientWrite() ................................................................................................................................................... A-9WRBCloseHTTPHeader().................................................................................................................................... A-11

WRBGetAppConfig() ........................................................................................................................................... A-12WRBGetCharacterEncoding()............................................................................................................................. A-13WRBGetClientIP() ................................................................................................................................................ A-14

WRBGetConfigVal() ............................................................................................................................................. A-15WRBGetContent()................................................................................................................................................. A-16WRBGetEnvironment() ........................................................................................................................................ A-17

WRBGetEnvironmentVariable() ......................................................................................................................... A-18WRBGetLanguage()............................................................................................................................................. A-19WRBGetMimeType()............................................................................................................................................ A-20

WRBGetNamedEntry() ........................................................................................................................................ A-21WRBGetORACLE_HOME() ............................................................................................................................... A-22WRBGetParsedContent()..................................................................................................................................... A-23

WRBGetPassword().............................................................................................................................................. A-24WRBGetReqMimeType()..................................................................................................................................... A-25

vii

Page 8: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetURI() ....................................................................................................................................................... A-26WRBGetURL() ...................................................................................................................................................... A-27

WRBGetUserID() .................................................................................................................................................. A-28WRBLogMessage()............................................................................................................................................... A-29WRBReturnHTTPError() ................................................................................................................................... A-30

WRBReturnHTTPRedirect() ............................................................................................................................... A-32WRBSetAuthorization() ....................................................................................................................................... A-33

索引索引索引索引

viii

Page 9: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

はじめにはじめにはじめにはじめに

対象読者対象読者対象読者対象読者このマニュアルは C APIのリファレンス・ガイドです。

Oracle Application Server のドキュメント・セットのドキュメント・セットのドキュメント・セットのドキュメント・セットこの表に、Oracle Application Serverのドキュメント・セットのリストを示します。

マニュアル名マニュアル名マニュアル名マニュアル名 部品番号部品番号部品番号部品番号

Oracle Application Server 概要 J00092-01

Oracle Application Server for Sun SPARC Solaris インストレーション・ガイド J00104-01

Oracle Application Server for Windows NT インストレーション・ガイド J00105-01

Oracle Application Server for Sun SPARC Solaris クイック・インストレーション・ガイド J00106-01

Oracle Application Server for Windows NT クイック・インストレーション・ガイド J00107-01

Oracle Application Server 管理者ガイド J00084-01

Oracle Application Server セキュリティ・ガイド J00108-01

Oracle Application Server パフォーマンス・チューニング・ガイド J00093-01

Oracle Application Server PL/SQLおよび ODBCアプリケーション開発者ガイド J00085-01

Oracle Application Server JServlet アプリケーション開発者ガイド J00102-01

Oracle Application Server LiveHTMLおよび Perlアプリケーション開発者ガイド J00087-01

Oracle Application Server EJB、ECO/Javaおよび CORBAアプリケーション開発者ガイド J00088-01

Oracle Application Server C++CORBAアプリケーション開発者ガイド J00090-01

ix

Page 10: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

マニュアルの表記規則マニュアルの表記規則マニュアルの表記規則マニュアルの表記規則次の表に、このマニュアルで使用される表記規則を示します。

Oracle Application Server PL/SQL Web Toolkit リファレンス J00095-01

Oracle Application Server PL/SQL Web Toolkit クイック・リファレンス J00094-01

Oracle Application Server JServlet Toolkit リファレンス J00101-01

Oracle Application Server JServlet Toolkit クイック・リファレンス J00100-01

Oracle Application Server カートリッジ・マネージメント・フレームワーク J00091-01

Oracle Application Server エラー・メッセージ J00103-01

表記規則表記規則表記規則表記規則 例例例例 説明説明説明説明

太字 oas.howsctlwrbcfgwww.oracle.com

ファイル名、ユーティリティ、プロセス、および URLを表します。

斜体 file1 テキスト内の可変部分を表します。このプレースホルダを特定の値や文字列に置き換えます。

山カッコ <filename> コード内の可変部分を表します。このプレースホルダを特定の値や文字列に置き換えます。

クーリエ・フォント owsctl start wrb 表示どおりに入力するテキスト。ファンクション(関数)にも使用します。

大カッコ [-c string]

[on|off]

オプション項目を表します。

オプション項目の選択肢がそれぞれ垂直バー (|)で区切って示され、その中のいずれか 1つを選択できます。

中カッコ {yes|no} 必須項目の選択肢が垂直バー (|)で区切って示されます。

省略記号 n,... その前の項目を何回でも繰り返すことができることを表します。

マニュアル名マニュアル名マニュアル名マニュアル名 部品番号部品番号部品番号部品番号

x

Page 11: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

コールバ

1

コールバックコールバックコールバックコールバック

この章では、カートリッジで使用されるコールバックについて説明します。

■ WRBReturnCodeの値

■ Entry-Pointコールバック

■ initInstanceコールバック

■ initCartridgeコールバック

■ initRuntimeコールバック

■ authorizeコールバック

■ execコールバック

■ reloadコールバック

■ versionコールバック

■ version_freeコールバック

■ shutdownInstanceコールバック

■ shutdownCartridgeコールバック

■ shutdownRuntimeコールバック

ック 1-1

Page 12: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBReturnCodeの値

WRBReturnCode の値の値の値の値entry-point、init、authorize、execおよび reloadコールバック関数は、WRBReturnCode のenumを使用して値を返します。これは、コールバックが問題なく完了したかどうかを示します。

WRBReturnCode の enumには次の 3つの値があります。

表表表表 1-1 WRBReturnCode

値値値値 説明説明説明説明

WRB_DONE 関数は正常終了しました。

WRB_ERROR 致命的ではないエラーが発生し、リクエストを完了できません。クライアントにエラー・メッセージが返されます。

カートリッジ・インスタンスは停止されません。

WRB_ABORT カートリッジでは回復できないエラーが発生しました。カートリッジのインスタンスは中止されますが、カートリッジ・サーバー・プロセスはそのまま実行されます。

1-2 Oracle Application Server C API リファレンス

Page 13: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Entry-Pointコールバック

Entry-Point コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode Entry_point_function_name ( WRBCallbacks *WRBcalls );

パラメータパラメータパラメータパラメータ

WRBcallsコールバック関数テーブルへのポインタ

説明説明説明説明Entry-point関数は、関数テーブルにコールバックへのポインタを登録します。カートリッジが最初に実行を開始したときに、WRBエンジンはこの Entry-point関数をコールしてコールバック関数の名前を取得します。

Entry-point関数の名前は自由に付けることができます。カートリッジの設定時に、カートリッジ共有ライブラリへのフルパスと Entry-point関数の名前を指定します。Entry-point関数名には「entry」という文字列を入れることをお薦めします(例 : MyCtx_Entry )。

WRBCallbacks 構造体構造体構造体構造体WRBCallbacks 型は、WRBエンジンがコールバックを起動する際に使用するディスパッチ・テーブルを定義します。

struct WRBCallbacks { WRBReturnCode (*init_WRBCallback)(dvoid *WRBCtx, dvoid **clientCtx); WRBReturnCode (*exec_WRBCallback)(dvoid *WRBCtx, dvoid *clientCtx); WRBReturnCode (*shut_WRBCallback)(dvoid *WRBCtx, dvoid *clientCtx); WRBReturnCode (*reload_WRBCallback)(dvoid *WRBCtx, dvoid *clientCtx); text *(*version_WRBCallback)(void); void (*version_free_WRBCallback)(text *szVersion); WRBReturnCode (*authorize_WRBCallback)(dvoid *WRBCtx, dvoid *clientCtx, boolean *bAuthorized); WRBReturnCode (*initRuntime_WRBCallback)(dvoid *WRBCtx, dvoid **runtimeCtx); WRBReturnCode (*initCartridge_WRBCallback)(dvoid *WRBCtx, dvoid **cartridgeCtx); WRBReturnCode (*shutCartridge_WRBCallback)(dvoid *WRBCtx, dvoid *cartridgeCtx); WRBReturnCode (*shutRuntime_WRBCallback)(dvoid *WRBCtx, dvoid *runtimeCtx);};typedef struct WRBCallbacks WRBCallbacks;

コールバック 1-3

Page 14: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Entry-Pointコールバック

WRBCallbacks 型のエレメントの名前型のエレメントの名前型のエレメントの名前型のエレメントの名前

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

例例例例WRBReturnCode test_entry( WRBCallbacks *WRBCalls ) { WRBCalls->init_WRBCallback = test_init; WRBCalls->authorize_WRBCallback = test_auth; WRBCalls->exec_WRBCallback = test_exec; WRBCalls->shut_WRBCallback = test_shut;

return WRB_DONE;}

コールバックコールバックコールバックコールバック WRBCallbacks のエレメント名のエレメント名のエレメント名のエレメント名

initInstance init_WRBCallback

initCartridge initCartridge_WRBCallback

initRuntime initRuntime_WRBCallback

authorize authorize_WRBCallback

exec exec_WRBCallback

reload reload_WRBCallback

version version_WRBCallback

version_free version_free_WRBCallback

shutdownInstance shut_WRBCallback

shutdownCartridge shutCartridge_WRBCallback

shutdownRuntime shutRuntime_WRBCallback

1-4 Oracle Application Server C API リファレンス

Page 15: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

initInstanceコールバック

initInstance コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode initInstance_function_name (

dvoid *WRBCtxdvoid **appCtx);

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

appCtx後続のカートリッジ関数に渡されるアプリケーション・コンテキスト構造体を設定するには、コンテキスト構造体を割り当て、そのアドレスをこのパラメータが指す変数に入れます。

説明説明説明説明initInstanceコールバックは、Webカートリッジが必要とする 1回限りの設定とリソース割当て(共有データ構造体など)を行います。

initInstance関数を使用して、カートリッジ関数の間で共有するデータを含んだデータ構造体を定義できます。initInstance関数は、データ構造体へのポインタを appCtx パラメータに入れて返します。次に、WRBエンジンは、他のカートリッジ・コールバックをコールする際にこのポインタを渡します。

カートリッジがマルチスレッド環境で動作する場合、データの共有には、グローバル変数のかわりにこのメソッドを使用する必要があります。グローバル変数は、マルチスレッド環境ではスレッドセーフではありません。

また、initInstance関数からWRB_setAuthServer() 関数をコールして、カートリッジ・インスタンスの実行中に使用されるクライアントの認証方式または制限方式を設定することが可能です。initInstance関数でこの処理を行う場合、authorize関数はコールされません。

このコールバックは、Oracle Web Application Server 3.0では「Init」コールバックと呼ばれていた点に注意してください。

また、WRBの管理ページを使用して、カートリッジの認証方式と制限方式を指定することも可能です。この場合、initInstanceコールバックや authorizeコールバックで指定する認証方式や制限方式は無視されます。

コールバック 1-5

Page 16: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

initInstanceコールバック

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

関連項目関連項目関連項目関連項目initCartridgeコールバック、initRuntimeコールバック

1-6 Oracle Application Server C API リファレンス

Page 17: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

initCartridgeコールバック

initCartridge コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode initCartridge_function_name (

dvoid *WRBCtx,dvoid **ctx );

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

ctxshutdownCartridge関数に渡すカートリッジ・コンテキスト構造体を設定するには、コンテキスト構造体を割り当て、そのアドレスをこのパラメータが指す変数に入れます。

説明説明説明説明このコールバックは、カートリッジの最初のインスタンスの開始時に起動されます。initCartridgeコールバックでは、同じカートリッジのインスタンスに必要な設定とリソース割当てを行う必要があります。

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

コールバック 1-7

Page 18: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

initRuntimeコールバック

initRuntime コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode initRuntime_function_name (

dvoid *WRBCtx,dvoid **ctx );

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

ctxshutdownRuntime関数に渡す実行時コンテキスト構造体を設定するには、コンテキスト構造体を割り当て、そのアドレスをこのパラメータが指す変数に入れます。

説明説明説明説明このコールバックは、カートリッジの最初のインスタンスの開始時に起動されます。initRuntimeコールバックでは、同じカートリッジのインスタンスに必要なセットアップとリソース割当てを行う必要があります。

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

1-8 Oracle Application Server C API リファレンス

Page 19: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

authorizeコールバック

authorize コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode authorize_function_name (

dvoid *WRBCtx,dvoid *appCtx,boolean *bAuthorized);

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

appCtxアプリケーション・コンテキスト構造体を指すポインタで、initInstance関数で割り当てられたもの。

bAuthorizedクライアントにリクエストを発行する権限があるかどうかを示します。

説明説明説明説明WRBディスパッチャがカートリッジにリクエストを送ると、WRBエンジンは次の条件が満たされている場合に authorizeカートリッジ関数をコールします。

■ authorize関数がインプリメントされており、WRBCallbacks 関数テーブルにそのポインタが登録されている。

■ カートリッジがWRBの管理ページを使用して明示的に保護されていない。

■ カートリッジの initInstance関数がWRB_setAuthServer() をコールしていない。

authorize関数を使用する場合、クライアントにリクエストを発行する権限があるかどうかを示すブール値をパラメータに入れて渡す必要があります。クライアントの権限はWRB_getRequestInfo() 関数を使用して判別できます。

また、WRB_setAuthBasic またはWRB_setAuthDigest 関数を使用して、クライアントがユーザー名とパスワードのプロンプトの表示に使用する認証レルムを設定することも可能です。

または、WRB_setAuthServerを initInstance関数からコールして、カートリッジ・インスタンスの実行中に使用される認証方式または制限方式(あるいはその両方)を指定できます。

コールバック 1-9

Page 20: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

authorizeコールバック

他に、WRBの管理ページを使用して認証方式や制限方式を指定する方法があります。この場合、initInstance関数や authorize関数で指定する認証方式や制限方式は無視されます。

このカートリッジ関数はオプションです。これがインプリメントされていない場合、カートリッジはWebリスナーおよびWRBの管理ページを通じてのみアクセス可能です。

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

関連項目関連項目関連項目関連項目WRB_getRequestInfo()、WRB_setAuthBasic()、WRB_setAuthDigest()、WRB_setAuthServer()

1-10 Oracle Application Server C API リファレンス

Page 21: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

execコールバック

exec コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode exec_function_name (

dvoid *WRBCtx,dvoid *appCtx);

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

appCtxアプリケーション・コンテキスト構造体を指すポインタで、initInstance関数で割り当てられたもの。

説明説明説明説明execカートリッジ関数は、WRBディスパッチャがカートリッジに送ったリクエストを処理する必要があります。通常は、カートリッジがサポートする一連のリクエストを定義します。次に、ユーザーはこれらのリクエストを URLにエンコーディングする方法を決定する必要があります。exec関数はWebリスナーから受け取るリクエストの URLを解析して、実行するべきアクションを決定します。WRB_getRequestInfo()関数を使用してリクエストのURLを取得できます。

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

コールバック 1-11

Page 22: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

reloadコールバック

reload コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode reload_function_name (

dvoid *WRBCtx,dvoid *appCtx);

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

appCtxアプリケーション・コンテキスト構造体を指すポインタで、initInstance関数で割り当てられたもの。

説明説明説明説明reloadコールバックは、Oracle Application Serverの Enterprise Editionでのみ使用可能です。

Webリスナーはシグナルが発生すると設定データをリロードし、次にWRBエンジンに対して各Webカートリッジの reload関数をコールするようシグナルを送ります。カートリッジが設定データを使用する場合、reload関数はWRB_getAppConfigSection() またはWRB_getAppConfigVal() をコールして、そのデータをリロードする必要があります。

戻り値戻り値戻り値戻り値戻り値(WRBReturnCode 型)は、関数が成功したかどうかを示します。WRB_DONE以外を返した場合、カートリッジは起動されません。

関連項目関連項目関連項目関連項目WRB_getAppConfigSection()、WRB_getAppConfigVal()

1-12 Oracle Application Server C API リファレンス

Page 23: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

versionコールバック

version コールバックコールバックコールバックコールバック

構文構文構文構文text * version_function_name ();

パラメータパラメータパラメータパラメータなし

説明説明説明説明WRBエンジンはカートリッジ・インスタンスの起動時に versionコールバックをコールします。versionコールバックでは、カートリッジのバージョン番号を含む文字列を割り当て、初期化する必要があります。この文字列は自由に設定可能です。たとえば、"1.1"などを返すようにできます。

次のように、コマンド・ライン・ユーティリティ owsctlを使用して、カートリッジのバージョンを表示できます。

prompt> owsctl version -c <appName>/<cartName>

appNameにはアプリケーション名を指定し、cartNameにはカートリッジ名を指定します。このユーティリティは、versionコールバックから返された値を返します。

version関数はオプションです。これをインプリメントした場合、version_freeコールバックもインプリメントして、version関数で割り当てた文字列を解放する必要があります。そうしないとメモリー・リークが発生します。

戻り値戻り値戻り値戻り値カートリッジのバージョンを示す文字列へのポインタ。

例例例例#define VERSION "1.2"text * test_cart1_version() { text *ver; ver = (text *)malloc(sizeof(VERSION)); strcpy(ver, VERSION); return(ver);}

関連項目関連項目関連項目関連項目version_freeコールバック

コールバック 1-13

Page 24: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

version_freeコールバック

version_free コールバックコールバックコールバックコールバック

構文構文構文構文void version_free_function_name (text*allocatedVersionString);

パラメータパラメータパラメータパラメータ

allocatedVersionStringversionコールバックによって割り当てられた文字列へのポインタ。

説明説明説明説明version_freeコールバックは、カートリッジ・インスタンスのシャットダウン時にコールされます。このコールバックは、versionコールバックで割り当てられたメモリーを解放します。

versionコールバックをインプリメントする場合は、このコールバックをインプリメントする必要があります。

戻り値戻り値戻り値戻り値なし

例例例例void test_cart1_versionfree(text *allocatedVersion) { free(allocatedVersion);}

関連項目関連項目関連項目関連項目versionコールバック

1-14 Oracle Application Server C API リファレンス

Page 25: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

shutdownInstanceコールバック

shutdownInstance コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode shutdownInstance_function_name (

dvoid *WRBCtx,dvoid *appCtx);

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

appCtxアプリケーション・コンテキスト構造体を指すポインタで、initInstance関数で割り当てられたもの。

説明説明説明説明WRBエンジンは shutdownCartridge関数をコールして、カートリッジをシャットダウンします。shutdown関数では、カートリッジが使用しているリソースをすべて解放する必要があります。shutdown関数が終了すると、カートリッジの実行は終了します。

戻り値戻り値戻り値戻り値WRBReturnCode 型の値。値を返すとカートリッジがシャットダウンされるため注意してください。

コールバック 1-15

Page 26: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

shutdownCartridgeコールバック

shutdownCartridge コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode shutdownCartridge_function_name (

dvoid *WRBCtx,dvoid *ctx );

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

ctxコンテキスト構造体を指すポインタで、initCartridge関数で割り当てられたもの。

説明説明説明説明WRBエンジンはカートリッジの最後のインスタンスのシャットダウン時に、shutdownCartridge関数をコールします。initCartridge関数で割り当てられたリソースを解放する必要があります。

戻り値戻り値戻り値戻り値WRBReturnCode 型の値。値を返すとカートリッジがシャットダウンされるため注意してください。

1-16 Oracle Application Server C API リファレンス

Page 27: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

shutdownRuntimeコールバック

shutdownRuntime コールバックコールバックコールバックコールバック

構文構文構文構文WRBReturnCode shutdownRuntime_function_name (

dvoid *WRBCtx,dvoid *ctx );

パラメータパラメータパラメータパラメータ

WRBCtxWRBエンジンが使用するオブジェクトへのポインタで、カートリッジから透過的にアクセスすることはできません。このポインタは、コールするWRB API関数に渡す必要があります。

ctxコンテキスト構造体を指すポインタで、initRuntime関数で割り当てられたもの。

説明説明説明説明WRBエンジンは、カートリッジ・ランタイムの最後のインスタンスのシャットダウン時に、shutdownCartridge関数をコールします。initRuntime関数で割り当てられたリソースを解放する必要があります。

戻り値戻り値戻り値戻り値WRBReturnCode 型の値。値を返すとカートリッジがシャットダウンされるため注意してください。

コールバック 1-17

Page 28: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

shutdownRuntimeコールバック

1-18 Oracle Application Server C API リファレンス

Page 29: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

2

基本基本基本基本 API

WRB データ型データ型データ型データ型■ パラメータ・ブロック・エレメント構造体

■ WAPIReturnCodeの値

WRB API■ WRB_addPBElem() - パラメータ・ブロックにエレメントを追加する。

■ WRB_annotateURL() - 問合せ文字列付きの URLを書き出す。

■ WRB_apiVersion() - WRBの現行のバージョンを返す。

■ WRB_copyPBlock() - パラメータ・ブロックをコピーする。

■ WRB_createPBlock() - パラメータ・ブロックを作成する。

■ WRB_delPBElem() - パラメータ・ブロックからエレメントを削除する。

■ WRB_destroyPBlock() - パラメータ・ブロックを破棄する。

■ WRB_findPBElem() - パラメータ・ブロックのエレメントを名前で検索する。

■ WRB_findPBElemVal() - パラメータ・ブロックのエレメントの値を検索する。

■ WRB_firstPBElem() - パラメータ・ブロックの先頭のエレメントを検索する。

■ WRB_flushData() - バッファのデータをクライアントに送信する。

■ WRB_getAppConfigSection() - カートリッジの設定データを取得する。

■ WRB_getAppConfigVal() - 設定パラメータの値を取得する。

■ WRB_getAppName() - アプリケーションの名前を取得する。

■ WRB_getCartridgeName() - コール側のカートリッジの名前を取得する。

■ WRB_getClientCert() - クライアントから SSL証明書を取得する。

本 API 2-1

Page 30: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

■ WRB_getContext() - アプリケーション、カートリッジまたはインスタンス・コンテキストを取得する。

■ WRB_getCookies() - 現行のリクエスト・ヘッダーから Cookieデータを取得する。

■ WRB_getEnvironment() - カートリッジの環境変数を取得する。

■ WRB_getListenerInfo() - Webリスナーの情報を取得する。

■ WRB_getMultAppConfigSection() - 複数のカートリッジのデータを取得する。

■ WRB_getMultipartData() - マルチパート・フォームからデータを取得する。

■ WRB_getORACLE_HOME() - ORACLE_HOME環境変数の値を取得する。

■ WRB_getParsedContent() - リクエストの内容を名前と値のペアで取得する。

■ WRB_getRequestInfo() - 現行リクエストの情報を取得する。

■ WRB_isEnterpriseEdition() - カートリッジがOracle Application Serverの Enterprise Editionで実行されている場合は TRUEを返し、それ以外の場合は FALSEを返す。

■ WRB_nextPBElem() - パラメータ・ブロックの次のエレメントを取得する。

■ WRB_numPBElem() - パラメータ・ブロックのエレメントの数を取得する。

■ WRB_printf() - フォーマットされたテキスト文字列を書き出す。

■ WRB_read() - 要求元から POSTデータを読み込む。

■ WRB_recvHeaders() - リクエスト・ヘッダーを取得する。

■ WRB_sendHeader() - 要求元にレスポンス・ヘッダーを送信する。

■ WRB_setAuthBasic() - 基本認証レルムを作成する。

■ WRB_setAuthDigest() - ダイジェスト認証レルムを作成する。

■ WRB_setAuthServer() - 認証サーバーを使用して認証を行う。

■ WRB_setCookies() - レスポンス・ヘッダーの Cookieデータを設定する。

■ WRB_timestamp() - この関数が実行された時点のエントリをログ・ファイルに書き込む。

■ WRB_walkPBlock() - パラメータ・ブロックのエレメントを位置で検索する。

■ WRB_write() - レスポンス・データを要求元に書き出す。

2-2 Oracle Application Server C API リファレンス

Page 31: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

パラメータ・ブロック・エレメント構造体

パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体パラメータ・ブロック・エレメント構造体には、すべてのタイプのパラメータ・ブロック・エレメントの名前、値および型がエンコーディングされています。

typedef struct _WRBPBElem { text *szParamName; sb4 nParamName;

text *szParamValue; sb4 nParamValue;

ub2 nParamType;

dvoid *pNVdata;} WRBpBlockElem;

メンバー nParamNameと nParamValue は、それぞれメンバー szParamNameとszParamValue のバイト数を返します。

nParamType メンバーには次の値を使用できます。

pNVdata メンバーは、一部のWRB API関数により、いろいろな目的に使用されます。

値値値値 意味意味意味意味

WRBPT_DONTCARE エレメントの型を未指定のままにしておきます。

WRBPT_NUMBER エレメントは数値です。

WRBPT_STRING エレメントは文字列です。

WRBPT_DATE エレメントは SQLの日付型フォーマットのカレンダ日付です。

WRBPT_RAW エレメントの値は RAW BINARY データです。

基本 API 2-3

Page 32: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WAPIReturnCodeの値

WAPIReturnCode の値の値の値の値WAPIReturnCode 型には、次の値を使用できます。

表表表表 2-1 WAPIReturnCode の値の値の値の値

値値値値 説明説明説明説明

WRB_NOTLOADED 関数は未ロードのWRBサービスの一部です。

WRB_LOWMEM メモリー割当てに失敗しました。

WRB_FAIL 関数の内部エラーです。

WRB_SUCCESS 関数は正常終了しました。

WRB_TOOLATE 内容データの書込みを開始した後に、ヘッダー・データを送信しようとしました。

WRB_AUTHNEEDED 必要な認証データとWRBMethod型を再度渡す必要があります。WRB_ICXsetMethod()を参照してください。

WRB_MOREDATA WRB_ICXmakeRequest()がレスポンスの一部を返しました。レスポンス全体を受け取るまでWRB_ICXfetchMoreData()を繰り返しコールする必要があります。

2-4 Oracle Application Server C API リファレンス

Page 33: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_addPBElem()

WRB_addPBElem()

指定したパラメータ・ブロックに 1つのエレメントを追加します。最初にWRB_createPBlock() をコールして、パラメータ・ブロックを作成する必要があります。

構文構文構文構文WAPIReturnCodeWRB_addPBElem(

dvoid *WRBCtx,WRBpBlock hPBlock,text *szParamName,sb4 nParamName,text *szParamValue,sb4 nParamValue,ub2 nParamType);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例次の例では、値が NULL 文字列の pBlockエレメントを作成します。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock パラメータ・ブロック。

→ szParamName 追加するエレメント名。

→ nParamName 追加するエレメント名のバイト数。このパラメータを –1に設定すると、この関数は strlen()ライブラリ関数を使用してエレメント名の長さを判別します。

→ szParamValue 追加するエレメントの値。

→ nParamValue 追加するエレメントの値のバイト数。このパラメータを –1 に設定すると、この関数は strlen ()ライブラリ関数を使用してエレメントの値の長さを判別します。

→ nParamType パラメータ型。使用できる値は、2-3ページの「パラメータ・ブロック・エレメント構造体」を参照してください。

基本 API 2-5

Page 34: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_addPBElem()

WAPIReturnCode rval;WRBpBlock pBlock = WRB_createPBlock(WRBCtx);

rval = WRB_addPBElem(WRBCtx, pBlock,"param_name", -1, /* specify name */"", -1 /* Pass a null string and set len to */WRBPT_STRING); /* -1 to force the API to use strlen */

関連項目関連項目関連項目関連項目WRB_createPBlock()

2-6 Oracle Application Server C API リファレンス

Page 35: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_annotateURL()

WRB_annotateURL()

指定した名前と値のペアのデータを問合せ文字列の形式で URLに追加し、その結果を要求元に書き出します。

この関数を使用して、HTML の <A>(アンカー)タグの HREF属性の値を設定できます。この関数は名前と値のペアになった &や =などの特殊文字を URLに追加する前に、対応する%x値(xは 16進数フォーマットの整数)に変換します。

構文構文構文構文sb4WRB_annotateURL(

dvoid *WRBCtx,text *url,WRBpBlock hArguments);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値要求元に書き出されるバイト数。エラーが発生した場合は –1。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ url 問合せ文字列のないベースの URLテキストで、"http://"、ホスト名、ポート(必要な場合)および URIが含まれます。

→ hArguments 名前と値のペアを含んだパラメータ・ブロックで、問合せ文字列として URLに追加されます。

基本 API 2-7

Page 36: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_apiVersion()

WRB_apiVersion()

WRBの現行のバージョンを返します。

構文構文構文構文ub2WRB_apiVersion( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値バージョン番号。

例例例例カートリッジの initコールバックでこの関数をコールして、カートリッジがユーザーのWRBと互換性があるかどうかを確認できます。

if ( WRB_apiVersion(WRBCtx) < WRBAPI_CURRENT_VERSION ) return WRB_ABORT;

WRBAPI_CURRENT_VERSIONは、カートリッジをビルドする際に使用したWRBのバージョンを示します。前述のプログラム・コードでは、現行のバージョンがカートリッジで使用されているバージョンより以前のものであった場合、カートリッジは異常終了します。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

2-8 Oracle Application Server C API リファレンス

Page 37: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_copyPBlock()

WRB_copyPBlock()

指定したパラメータ・ブロックのコピーを作成します。

構文構文構文構文WRBpBlockWRB_copyPBlock(

dvoid *WRBCtx,WRBpBlock hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WRBpBlock型の値。指定したパラメータ・ブロックのコピーを示します。失敗すると、WRB_copyPBlock() は NULL を返します。

関連項目関連項目関連項目関連項目WRB_createPBlock() および WRB_destroyPBlock()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock コピーするパラメータ・ブロック。

基本 API 2-9

Page 38: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_createPBlock()

WRB_createPBlock()

パラメータ・ブロックを割り当てます。これは、パラメータ・ブロックをパラメータとするWRB API関数との間のデータの受渡しに使用できます。

構文構文構文構文WRBpBlockWRB_createPBlock( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WRBpBlock 型の変数。新規に作成したパラメータ・ブロックを示します。失敗すると、WRB_createPBlock() は NULL を返します。

関連項目関連項目関連項目関連項目WRB_destroyPBlock()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

2-10 Oracle Application Server C API リファレンス

Page 39: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_delPBElem()

WRB_delPBElem()

パラメータ・ブロックからエレメントを削除します。

構文構文構文構文WAPIReturnCodeWRB_delPBElem(dvoid *WRBCtx,

WRBpBlock hPBlock,text *szName,sb4 nNamel);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_addPBElem()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock パラメータ・ブロック。

→ szName パラメータ・ブロックから削除されるエレメント名。

→ nName1 エレメント名のバイト数。このパラメータを –1に設定すると、この関数は strlen() ライブラリ関数を使用してエレメント名の長さを判別します。

基本 API 2-11

Page 40: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_destroyPBlock()

WRB_destroyPBlock()

パラメータ・ブロックを破棄し、関連するリソースを解放します。パラメータ・ブロックの使用終了時に、この関数をコールする必要があります。

構文構文構文構文WAPIReturnCodeWRB_destroyPBlock(

dvoid *WRBCtx,WRBpBlock hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_createPBlock()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 破棄するパラメータ・ブロック。

2-12 Oracle Application Server C API リファレンス

Page 41: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_findPBElem()

WRB_findPBElem()

指定された名前に一致するパラメータ・ブロック内のパラメータ・ブロック・エレメントへのポインタを返します。ポインタは検索されたエレメントが削除されるまで有効です。

戻り値のポインタが参照する記憶領域を解放しないでください。

この関数とWRB_findPBElemVal() の違いは、WRB_findPBElemVal() は名前付きエレメントの値を返すという点です。

構文構文構文構文WRBpBlockElem *WRB_findPBElem(

dvoid *WRBCtx,WRBpBlock hPBlock,text *szName,sb4 nNamel);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値szNameが示すパラメータ・ブロックのエレメントへのポインタ。失敗すると、WRB_findPBElem() は NULL を返します。

関連項目関連項目関連項目関連項目WRB_createPBlock() 、WRB_findPBElemVal()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 検索するパラメータ・ブロック。

→ szName 検索するエレメント名。

→ nNamel エレメント名のバイト数。このパラメータを –1に設定すると、この関数は strlen() ライブラリ関数を使用してエレメント名の長さを判別します。

基本 API 2-13

Page 42: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_findPBElemVal()

WRB_findPBElemVal()

WRB_getParsedContent() で取り出した HTML フォームのフィールド値など、パラメータ・ブロックの名前付きエレメントの値を検索します。

構文構文構文構文text *WRB_findPBElemVal(

dvoid *WRBCtx,WRBpBlock hPBlock,text *szName,sb4 nNamel);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値szNameが示すパラメータ・ブロックのエレメントの値を含むテキスト文字列へのポインタ。失敗すると、WRB_findPBElemVal() は NULL を返します。

関連項目関連項目関連項目関連項目WRB_createPBlock()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 検索するパラメータ・ブロック。

→ szName 検索するエレメント名。

→ nNamel エレメント名のバイト数。このパラメータを –1に設定すると、この関数は strlen() ライブラリ関数を使用してエレメント名の長さを判別します。

2-14 Oracle Application Server C API リファレンス

Page 43: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_firstPBElem()

WRB_firstPBElem()

パラメータ・ブロックの先頭のエレメントへのポインタを返します。

WRB_firstPBElem() とWRB_nextPBElem() を一緒に使用して、パラメータ・ブロックを繰り返し検索できます。これは、WRB_walkPBlock() を使用するより効率的です。

戻り値は、検索されたエレメントが削除されるまで有効であるため注意してください。

戻り値のポインタが参照する記憶領域を解放しないでください。

構文構文構文構文WRBpBlockElem *WRB_firstPBElem(

dvoid *WRBCtx,WRBpBlock hPBlock,dvoid **pos);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値パラメータ・ブロック・エレメントの先頭のエレメントへのポインタ。失敗すると、WRB_firstPBElem() は NULL を返します。

例例例例WRBpBlock hPBlock;WRBpBlockElem *elem;dvoid *pos;

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* do something with elem */}

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 検索するパラメータ・ブロック。

← pos 非透過のポインタを保管する場所へのポインタで、取得可能な次のパラメータ・ブロックのエレメントを示します。

基本 API 2-15

Page 44: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_firstPBElem()

関連項目関連項目関連項目関連項目WRB_nextPBElem() および WRB_createPBlock()

2-16 Oracle Application Server C API リファレンス

Page 45: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_flushData()

WRB_flushData()

バッファからクライアントにデータを送信します。WRB_write() (または、Oracle WebServer 2.xを使用している場合はWRBClientWrite() )を使用してクライアントにデータを送信する場合、データはバッファに収集され、カートリッジがコールバック関数を終了するときまたはバッファがいっぱいになったときにクライアントに送信されます。

この関数により、コールバック関数の使用中はいつでもクライアントにデータを送信できます。特に、コールバックの完了に長時間かかる場合は、この関数を使用するとカートリッジのレスポンスが速くなる場合があります。

この関数はどのコールバックからでもコールできますが、通常は execコールバックからコールされます。

構文構文構文構文voidWRB_flushData( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値なし

例例例例WRBReturnCode myExec(dvoid *WRBCtx, dvoid *appCtx) {

text *str;

/* user-defined function for returning HTTP headers */returnHTTPHeader(WRBCtx);

/* return some data to the client */str = (text*) "<p>Data to be processed";WRB_write(WRBCtx, str, strlen(str));/* ... more WRB_write() calls ... */WRB_flushData(WRBCtx); /* send the data */

/* ... perform calculations ... */

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

基本 API 2-17

Page 46: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_flushData()

str = (text*) "Calculated values:";WRB_write(WRBCtx, str, strlen(str));... /* send more data to the client ... */

}

関連項目関連項目関連項目関連項目WRB_write()

2-18 Oracle Application Server C API リファレンス

Page 47: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigSection()

WRB_getAppConfigSection()

指定されたWRB設定のセクションで定義されている設定データ(名前と値のペア)を含むパラメータ・ブロックを返します。この関数を使用して、ユーザー・カートリッジまたはその他のカートリッジの設定データを取得することができます。

パラメータ・ブロックの使用終了時に、WRB_destroyPBlock() をコールする必要があります。

構文構文構文構文WAPIReturnCodeWRB_getAppConfigSection(

dvoid *WRBCtx,text *szSectionName,WRBpBlock *hSection);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例WRB_getAppConfigSection() をWRB_firstPBElem() およびWRB_nextPBElem() と一緒に使用して、WRB設定の名前付きセクションから名前と値のペアをすべて取り出すことができます。次の例では、設定ファイルの SYSTEMセクションの名前と値のペアを順番に取り出しています。

WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *elem;dvoid *pos;

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szSectionName 取り出す設定セクションの名前。NULL の場合、コール側のカートリッジの設定セクションが使用されます。このセクションの名前はSYSTEM_<appname>/<cartname> です。セクション名に山カッコは含めない点に注意してください。

← hSection 指定したセクションから取り出した名前と値のペアが含まれるパラメータ・ブロックへのポインタ。

基本 API 2-19

Page 48: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigSection()

ret = WRB_getAppConfigSection(WRBCtx, (text*)"SYSTEM", &hPBlock);if (ret != WRB_SUCCESS) return WRB_ERROR;

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* do something with elem */}

WRB_destroyPBlock(WRBCtx, hPBlock);

[Apps] セクションとセクションとセクションとセクションと [AppDirs] セクションセクションセクションセクション[Apps] と [AppDirs] セクションの行は、"name=value"の形式に従いません。つまり、WRB_getAppConfigSection()から返されるパラメータ・ブロックは形式が異なります。

次に、このようなセクションの例を示します(セミコロンで始まる行はコメント行です)。

[Apps]; Application/cartridge Object Entry-point function; ----------------------------------------------------------------------------------------------owsapps/owsstat %ORAWEB_HOME%/lib/wstat.so testentryowsapps/owsstat2 %ORAWEB_HOME%/lib/wstat.so testentry2Upgraded_LiveHTML/LiveHTML /private/oracle/ows/cartx/livehtml/lib/liblhtml.so ndwussinitPERL/Default %ORAWEB_HOME%/../cartx/perl/lib/libperlctx.so wrbperlentryUpgraded_PLSQL/PLSQL %ORAWEB_HOME%/../cartx/plsql/lib/libndwoa.so ndwoadinitDB_Utilities/Log_Analyzer %ORAWEB_HOME%/../cartx/plsql/lib/libndwoa.so ndwoadinit

[AppDirs]; Virtual path Application/Cartridge Physical path; -------------------------------------------------------------------------------/owsapps/owsstat owsapps/owsstat %ORAWEB_HOME%/bin/owsapps/owsstat2 owsapps/owsstat2 %ORAWEB_HOME%/bin/sample/livehtml Upgraded_LiveHTML/LiveHTML %ORAWEB_HOME%/sample/livehtml/sample/perl PERL/Default %ORAWEB_HOME%/sample/perl/Upgraded_PLSQL/PLSQL Upgraded_PLSQL/PLSQL %ORAWEB_HOME%/bin/sample/plsql Upgraded_PLSQL/PLSQL %ORAWEB_HOME%/bin/DB_Utilities/Log_Analyzer DB_Utilities/Log_Analyzer %ORAWEB_HOME%/bin

各行には 3列のデータが含まれています。WRB_getAppConfigSection()をコールしてこれらのセクションからデータを取得する場合、関数は各セルにパラメータ・ブロック・エレメントを含むパラメータ・ブロックを返します。セルは列の順序で読み込まれます。

[Apps] セクションでは、Entry-point関数の値、オブジェクトの値およびアプリケーション/カートリッジの列の値が、ランダムな順序で表示されます。

2-20 Oracle Application Server C API リファレンス

Page 49: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigSection()

パラメータ・ブロック・エレメントでは、szParamNameフィールドに "Entry Point i"、"Object i"または "Application i"が含まれます。i はセクション内の行番号を示します。szParamValueフィールドにはセルの値が含まれます。

[AppDirs] セクションでは、仮想パス、物理パスおよびアプリケーション /カートリッジの列の値が、ランダムな順序で表示されます。特定の値を取得する場合は、直接WRB_findPBElem()またはWRB_findPBElemVal()を使用する必要があります。

パラメータ・ブロック・エレメントでは、szParamNameフィールドに "Virtual Path i"、"Physical Path i" または "Cartridge i" が含まれます。iはセクション内の行番号を示します。szParamValueフィールドにはセルの値が含まれます。

次のサンプル・コードでは、前述のセクションから値を取り出し、それをユーザーに返します。

WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *elem;dvoid *pos;

/* get values from Apps */ret = WRB_getAppConfigSection(WRBCtx, (text*)"Apps", &hPBlock);if (ret != WRB_SUCCESS) return WRB_ERROR;

WRB_printf(WRBCtx, "Values from [Apps]¥n");WRB_printf(WRBCtx, "------------------¥n");for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { WRB_printf(WRBCtx, "%s = %s¥n", elem->szParamName, elem->szParamValue)}WRB_destroyPBlock(WRBCtx, hPBlock);

/* get values from AppDirs */ret = WRB_getAppConfigSection(WRBCtx, (text*)"AppDirs", &hPBlock);if (ret != WRB_SUCCESS) return WRB_ERROR;

WRB_printf(WRBCtx, "Values from [AppDirs]¥n");WRB_printf(WRBCtx, "---------------------¥n");for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { WRB_printf(WRBCtx, "%s = %s¥n", elem->szParamName, elem->szParamValue)}WRB_destroyPBlock(WRBCtx, hPBlock);

ユーザーには次のように表示されます。

Values from [Apps]

基本 API 2-21

Page 50: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigSection()

------------------Entry Point 1 = testentryEntry Point 2 = testentry2Object 3 = /install/7.3.2.2/ows/cartx/livehtml/lib/liblhtml.soObject 4 = /install/7.3.2.2/ows/4.0/../cartx/perl/lib/libperlctx.soEntry Point 3 = ndwussinitEntry Point 4 = wrbperlentryEntry Point 6 = ndwoadinitObject 1 = /install/7.3.2.2/ows/4.0/lib/wstat.soApplication 2 = owsapps/owsstat2Object 2 = /install/7.3.2.2/ows/4.0/lib/wstat.soObject 5 = /install/7.3.2.2/ows/4.0/../cartx/plsql/lib/libndwoa.soObject 6 = /install/7.3.2.2/ows/4.0/../cartx/plsql/lib/libndwoa.soApplication 1 = owsapps/owsstatApplication 3 = Upgraded_LiveHTML/LiveHTMLEntry Point 5 = ndwoadinitApplication 4 = Upgraded_Perl/PerlApplication 5 = Upgraded_PLSQL/PLSQLApplication 6 = DB_Utilities/Log_Analyzer

Values from [AppDirs]---------------------Virtual Path 1 = /owsapps/owsstatVirtual Path 2 = /owsapps/owsstat2Physical Path 5 = /install/7.3.2.2/ows/4.0/binPhysical Path 6 = /install/7.3.2.2/ows/4.0/binVirtual Path 3 = /sample/livehtmlVirtual Path 4 = /sample/perlVirtual Path 5 = /Upgraded_PLSQL/PLSQLCartridge 5 = Upgraded_PLSQL/PLSQLVirtual Path 6 = /sample/plsqlVirtual Path 7 = /DB_Utilities/Log_AnalyzerPhysical Path 1 = /install/7.3.2.2/ows/4.0/binCartridge 3 = Upgraded_LiveHTML/LiveHTMLPhysical Path 2 = /install/7.3.2.2/ows/4.0/binPhysical Path 3 = /install/7.3.2.2/ows/4.0/sample/livehtmlPhysical Path 4 = /install/7.3.2.2/ows/4.0/sample/perlPhysical Path 7 = /install/7.3.2.2/ows/4.0/binCartridge 1 = owsapps/owsstatCartridge 2 = owsapps/owsstat2Cartridge 4 = Upgraded_Perl/PerlCartridge 6 = Upgraded_PLSQL/PLSQLCartridge 7 = DB_Utilities/Log_Analyzer

2-22 Oracle Application Server C API リファレンス

Page 51: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigSection()

関連項目関連項目関連項目関連項目WRB_getAppConfigVal() 、WRB_getMultAppConfigSection() 、WRB_findPBElem() 、WRB_findPBElemVal()

基本 API 2-23

Page 52: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppConfigVal()

WRB_getAppConfigVal()

指定したWRB設定データのセクションで定義された名前付きパラメータの値を返します。

構文構文構文構文text *WRB_getAppConfigVal(

dvoid *WRBCtx,text *szSectionName,text *szName);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値テキスト文字列へのポインタ。テキスト文字列には、WRB設定データの指定されたセクションに定義されたパラメータの値が含まれます。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRB_getAppConfigSection() 、WRB_getCartridgeName()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szSectionName 検索するWRB設定のセクションの名前。NULL の場合、APPLICATION.<appname> セクションが使用されます。セクション名に山カッコは含めない点に注意してください。

→ szName 値を検索する設定パラメータの名前。

2-24 Oracle Application Server C API リファレンス

Page 53: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getAppName()

WRB_getAppName()

カートリッジを含んでいるアプリケーションの名前を返します。

構文構文構文構文text *WRB_getAppName( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値アプリケーションの名前。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRB_getCartridgeName()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

基本 API 2-25

Page 54: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getCartridgeName()

WRB_getCartridgeName()

WRB設定に指定されたコール側のカートリッジの名前を返します。

構文構文構文構文text *WRB_getCartridgeName(dvoid *WRBCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値テキスト文字列へのポインタ。テキスト文字列には、WRB設定データに指定されたコール側のカートリッジの名前が含まれます。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRB_getAppName()、WRB_getAppConfigSection() 、WRB_getMultAppConfigSection() 、WRB_getAppConfigVal()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

2-26 Oracle Application Server C API リファレンス

Page 55: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getClientCert()

WRB_getClientCert()

クライアントの SSL証明書を取得します。この関数が実行されると、証明書を選択するダイアログ・ボックスがユーザーに表示されます。これは、ユーザーのブラウザの設定によって異なります。

この関数を使用する前に、次の作業を行う必要があります。

■ クライアントの証明書を取得できるようにカートリッジを設定します。

これを行うには、Oracle Application Server Managerの「Webの設定」フォームの「クライアントの証明書」フィールドで「使用可能」を選択します。これにより、ディスパッチャは、クライアントの SSL証明書を取得して、カートリッジに渡すことができます。

■ クライアントの証明書を要求するようにリスナーを設定します。これは、Oracle Application Serverに付属している Oracle Web Listenerを使用している場合のみ必要です。NetscapeのWebリスナーを使用している場合は不要です。

Oracle Application Server Managerの「ネットワーク」フォームを使用してこれを行います。その SSLポートの「認証」列で「REQ」を選択します。

構文構文構文構文WAPIReturnCodeWRB_getClientCert(

dvoid *WRBCtx,ub1 **cert,ub4 *certlen);

パラメータパラメータパラメータパラメータ

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← cert SSL証明書へのポインタへのポインタ。証明書は DERでエンコーディングされています。

この証明書の記憶領域はWRBが管理するため、ユーザー側で解放したり、変更しないでください。

← certlen SSL証明書の長さ。パラメータ値が 0(ゼロ)の場合、このリクエストに関連付けられている証明書は存在しません。

基本 API 2-27

Page 56: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getClientCert()

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例WAPIReturnCode r;FILE *fp;ub1 *cert;ub4 certlen;

if ((r = WRB_getClientCert(WRBCtx, &cert, &certlen)) == WRB_SUCCESS) { if (certlen > 0) { fp = fopen("cert.out", "w"); fwrite(cert, sizeof(char), certlen, fp); fclose(fp); }}

2-28 Oracle Application Server C API リファレンス

Page 57: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getContext()

WRB_getContext()

アプリケーション・レベル、カートリッジ・レベルまたはインスタンス・レベルでコンテキスト・データを取得します。

構文構文構文構文dvoid*WRB_getContext(

dvoid *WRBCtx,ub2 contextType);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値コンテキスト・データ構造体を指すポインタ。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ contextType 取得するコンテキストを指定します。次の方式のいずれかです。

■ WRB_RUNTIMECONTEXT

■ WRB_CARTRIDGECONTEXT

■ WRB_INSTANCECONTEXT

基本 API 2-29

Page 58: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getCookies()

WRB_getCookies()

現行のリクエストに関連付けられた Cookieが含まれるパラメータ・ブロックを返します。

パラメータ・ブロックの使用終了時に、WRB_destroyPBlock() をコールして、これを解放する必要があります。

構文構文構文構文WAPIReturnCodeWRB_getCookies(

dvoid *WRBCtx,WRBpBlock *hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

アクセスしているブラウザに Cookieが存在しない場合、この関数はWRB_FAILを返すため注意してください。

例例例例WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *elem;dvoid *pos;

ret = WRB_getCookies(WRBCtx, &hPBlock);if (ret != WRB_SUCCESS) { return (WRB_ERROR);}

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) {

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hPBlock リクエストの Cookieが保管されるパラメータ・ブロックへのポインタ。

2-30 Oracle Application Server C API リファレンス

Page 59: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getCookies()

/* do something with elem */}

WRB_destroyPBlock(WRBCtx, hPBlock);

関連項目関連項目関連項目関連項目WRB_setCookies() 、WRB_destroyPBlock()

基本 API 2-31

Page 60: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getEnvironment()

WRB_getEnvironment()

コール側のカートリッジが継承する環境から現在定義されている環境変数とその値を取得して、その情報をパラメータ・ブロックの形で返します。

データを含んだパラメータ・ブロックの使用終了時に、WRB_destroyPBlock() をコールして、パラメータ・ブロックが使用したメモリーを解放する必要があります。WRB_getEnvironment()のコールが失敗した場合は、WRB_destroyPBlock()をコールしてメモリーを解放する必要はありません。

この関数はクライアント・コンテキストを必要とするため、init コールバックからコールできない点に注意してください。init コールバックが実行される場合、クライアント・コンテキストは存在しません。

構文構文構文構文WAPIReturnCodeWRB_getEnvironment(

dvoid *WRBCtx,WRBpBlock *hEnvironment);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例この例では、WRB_getEnvironment() をWRB_findPBElemVal() と一緒に使用して、特定の環境変数の値を取り出しています。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hEnvironment カートリッジの環境変数が保管されるパラメータ・ブロックへのポインタ。

2-32 Oracle Application Server C API リファレンス

Page 61: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getEnvironment()

WRBpBlock hPBlock;WAPIReturnCode ret;text *owhome;

ret = WRB_getEnvironment(WRBCtx, &hPBlock);if (ret != WRB_SUCCESS) { return (WRB_ERROR);}owhome = WRB_findPBElemVal(WRBCtx, hPBlock, (text *)"ORAWEB_HOME", -1);

WRB_destroyPBlock(WRBCtx, hPBlock);

関連項目関連項目関連項目関連項目WRB_findPBElemVal() 、WRB_destroyPBlock()

基本 API 2-33

Page 62: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getListenerInfo()

WRB_getListenerInfo()

現行のリクエストを扱っているWebリスナーに関する情報(リスナーの仮想ディレクトリ・マッピングなど)が含まれるパラメータ・ブロックを返します。

構文構文構文構文WRBpBlockWRB_getListenerInfo(

dvoid *WRBCtx,ub2 nInfoType);

パラメータパラメータパラメータパラメータ

リスナー情報の種類リスナー情報の種類リスナー情報の種類リスナー情報の種類

戻り値戻り値戻り値戻り値現行のリクエストを扱っているWebリスナーに関する、リクエストされた情報が含まれるパラメータ・ブロック。失敗すると、WRB_getListenerInfo() は NULL を返します。

関連項目関連項目関連項目関連項目WRB_getRequestInfo()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ nInfoType 要求する情報のタイプ。有効な値は次を参照してください。

リスナー情報の種類リスナー情報の種類リスナー情報の種類リスナー情報の種類 説明説明説明説明

WRBL_DIRMAPS リスナーの仮想 /物理ディレクトリ・マッピング

WRBL_MIMETYPES リスナーがサポートする MIME タイプのリスト

2-34 Oracle Application Server C API リファレンス

Page 63: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getMultAppConfigSection()

WRB_getMultAppConfigSection()

WRB設定データのすべてのセクションで定義された名前の中から、指定された文字列で始まる名前を持つものを名前と値のペアで返します。

最上位のパラメータ・ブロックと各セクションのパラメータ・ブロック(pNVdata)の使用終了時に、WRB_destroyPBlock() をコールする必要があります。

構文構文構文構文WAPIReturnCodeWRB_getMultAppConfigSection(

dvoid *WRBCtx,text *szSectionName, WRBpBlock*pSectionList);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例WRB_getMultAppConfigSection() をWRB_firstPBElem() およびWRB_nextPBElem() と一緒に使用して、WRB設定の指定したセクションから名前と値のペアをすべて取り出すことができます。次の例では、名前が "jane"で始まるすべてのセクションで定義された名前と値のペアを順番に取り出しています。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szSectionName 取得するカートリッジ設定のセクションの先頭文字列。名前がこの文字列で始まるすべてのセクションが取り出されます。このパラメータに ""(空の文字列)を指定すると、すべてのカートリッジの設定データが取り出されます。

← pSectionList 指定したセクションから取り出した名前と値のペアが含まれるパラメータ・ブロックへのポインタ。

パラメータ・ブロックには、WRB設定データの各セクションのパラメータ・ブロックのエレメントが含まれます。各セクションのパラメータ・ブロックのエレメントは、pNVdata メンバーを使用して、その設定セクションに定義されている名前と値のペアが含まれるパラメータ・ブロックを示します。

基本 API 2-35

Page 64: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getMultAppConfigSection()

WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *sect, *elem;dvoid *sectpos, *pos;

ret = WRB_getMultAppConfigSection(WRBCtx, (text *)"jane", &hPBlock);if (ret != WRB_SUCCESS) { return (WRB_ERROR);}

for (sect = WRB_firstPBElem(WRBCtx, hPBlock, &pos); sect; sect = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* sect points to the parameter block for a section */ for (elem = WRB_firstPBElem(WRBCtx, sect->pNVdata, &pos); elem; elem = WRB_nextPBElem(WRBCtx, sect->pNVData, pos)) { /* do something with name-value pair */ }}for (sect = WRB_firstPBElem(WRBCtx, hPBlock, &pos); sect;

sect = WRB_nextPBElem(WRBCtx, hPBlock, pos)) WRB_destroyPBlock (WRBCtx, sect->pNVdata);

WRB_destroyPBlock(WRBCtx, hPBlock);

関連項目関連項目関連項目関連項目WRB_getAppConfigVal() 、WRB_getAppConfigSection()

2-36 Oracle Application Server C API リファレンス

Page 65: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getMultipartData()

WRB_getMultipartData()

マルチパート・フォームからデータを取得します。マルチパート・フォームのフォーマットは RFC 1867で定義されています。

たとえば、ファイルをアップロードする場合、リクエストの各パートには次のものが含まれます。

■ 名前と値のペア。名前はヘッダーの名前(「file」など)で、値はアップロードするファイルの名前です。この情報は、multiPartパラメータに返されます。

■ データ(ファイルの内容)。この情報は、mpDataパラメータに返されます。

この関数の 1回のコールで、フォーム内の 1パートのデータを返します。すべてのパートを取得するには、この関数が NULL を返すまで繰り返しコールします。

構文構文構文構文WAPIReturnCodeWRB_getMultipartData(

dvoid *WRBCtx,WRBpBlockElem *mPartNV,ub1 **mPartData,ub4 *mPartSize);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例この例では、マルチパートのフォームから file と file_data ヘッダーの値を取り出しています。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← mPartNV 名前と値のペアの情報が含まれるパラメータ・ブロックのエレメント。

← mPartData バイナリ形式のパラメータ・エレメントのデータ。

← mPartSize データのバイト数。

基本 API 2-37

Page 66: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getMultipartData()

while (WRB_getMultipartData(WRBCtx, &multiPart, &mpData, &mpDataLen) == WRB_SUCCESS){ if (!strcmp(multiPart.szParamName, "file")) { mpData[mpDataLen] = '¥0'; file = (text *)mpData; } else if (!strcmp(multiPart.szParamName, "file_data")) { text_buffer = mpData; buflen = mpDataLen; }}

2-38 Oracle Application Server C API リファレンス

Page 67: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getORACLE_HOME()

WRB_getORACLE_HOME()

コール側のカートリッジの環境内に定義されている ORACLE_HOME環境変数の値を返します。

構文構文構文構文text *WRB_getORACLE_HOME( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値環境変数 ORACLE_HOMEの値。設定されていない場合は NULL になります。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRB_getEnvironment()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

基本 API 2-39

Page 68: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getParsedContent()

WRB_getParsedContent()

リクエスト・メソッドが GETの場合は現行の HTTPリクエストの問合せ文字列、POSTの場合は POSTデータを取得します。

関数はこのデータを解析し、パラメータ・ブロックに入れて返します。パラメータ・ブロックの各エレメントには、POSTデータや問合せ文字列の名前と値が含まれます。

パラメータ・ブロックの記憶領域はハッシュ・テーブルです。パラメータ・ブロックのインプリメンテーションには、昇順、降順などの順序はありません。

データを含んだパラメータ・ブロックの使用終了時に、WRB_destroyPBlock() をコールして、パラメータ・ブロックが使用したメモリーを解放する必要があります。

問合せ文字列が存在しない場合、この関数はエラー・コードを返す点に注意してください。リターン・コードに頼らずに、パラメータ hQueryStringが NULL かどうかを調べてください。

構文構文構文構文WAPIReturnCodeWRB_getParsedContent(

dvoid *WRBCtx,WRBpBlock *hQueryString);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

解析する内容が空の場合、戻り値はWRB_FAILで、出力パラメータ・ブロックは NULLに設定されます。

例例例例WRB_getParsedContent() をWRB_firstPBElem() およびWRB_nextPBElem() と一緒に使用して、現行の問合せ文字列や POSTデータを取得します。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hQueryString 問合せ文字列や POSTデータが含まれるパラメータ・ブロックへのポインタ。

2-40 Oracle Application Server C API リファレンス

Page 69: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getParsedContent()

WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *elem;dvoid *pos;

ret = WRB_getParsedContent(WRBCtx, &hPBlock);if (ret != WRB_SUCCESS) { return (WRB_ERROR);}

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* do something with elem */}

WRB_destroyPBlock(WRBCtx, hPBlock);

関連項目関連項目関連項目関連項目WRB_firstPBElem() 、WRB_nextPBElem() 、WRB_destroyPBlock()

基本 API 2-41

Page 70: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getRequestInfo()

WRB_getRequestInfo()

リクエスト URIやリクエストを転送したリスナーのドメイン名付ホスト名など、受信したリクエストの特定の部分を返します。

構文構文構文構文text *WRB_getRequestInfo(

dvoid *WRBCtx,ub2 nInfoType);

パラメータパラメータパラメータパラメータ

nInfoType パラメータの値パラメータの値パラメータの値パラメータの値

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ nInfoType 必要な情報の種類。有効な値の一覧は、「nInfoTypeパラメータの値」を参照してください。

値値値値 説明説明説明説明

WRBR_URI リクエスト URI

WRBR_URL リクエスト URL

WRBR_LISTENERTYPE リスナーの種類(Oracle Application Serverなど)

WRBR_VIRTUALPATH リクエストの仮想パス(リクエスト URIのサブストリング)

WRBR_PHYSICALPATH 仮想パスがマップされる物理パス(存在する場合)

WRBR_QUERYSTRING リクエストの問合せ文字列

問合せ文字列パラメータは、GETまたは POSTのいずれで送信されても、HTML FORMとして返されます。このため、WRB_getReguestInfo (WRBCtx, WRBR_QUERYSTRING)へのコールから返された文字列には、メソッドが POSTであっても、送信ボタンが押されたフォーム内の HTML FORMのパラメータが含まれます。

2-42 Oracle Application Server C API リファレンス

Page 71: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_getRequestInfo()

戻り値戻り値戻り値戻り値要求した情報の文字列へのポインタ。失敗すると、NULL を返します。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

WRBR_LANGUAGE 取得されたオブジェクト・フィールドに関するコンテンツの言語ヘッダーの値

WRBR_ENCODING 取得されたオブジェクト・フィールドに関するコンテンツのエンコーディング・ヘッダーの値

WRBR_REQMIMETYPE リクエストのMIME タイプ

WRBR_USER 認証要求に対して要求元から渡されるユーザー名

WRBR_PASSWORD 認証要求に対して要求元から渡されるパスワード

WRBR_IP 要求元の IPアドレス

値値値値 説明説明説明説明

基本 API 2-43

Page 72: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_isEnterpriseEdition()

WRB_isEnterpriseEdition()

カートリッジが Oracle Application Serverの Enterprise Editionで実行されているかどうかを返します。

構文構文構文構文booleanWRB_isEnterpriseEdition(dvoid *WRBCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値カートリッジが Oracle Application Serverの Enterprise Editionで実行されている場合はTRUE、それ以外の場合は FALSE。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

2-44 Oracle Application Server C API リファレンス

Page 73: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_nextPBElem()

WRB_nextPBElem()

パラメータ・ブロック内の、使用可能な次のエレメントへのポインタを返します。WRB_nextPBElem() をコールする前に、WRB_firstPBElem() をコールして、posパラメータを初期化する必要があります。

WRB_nextPBElem() をWRB_firstPBElem() と一緒に使用してパラメータ・ブロックを繰り返し検索する方が、WRB_walkPBlock() を使用するより効率的です。

戻り値は、検索されたエレメントが削除されるまで有効であるため注意してください。

戻り値のポインタが参照する記憶領域を解放しないでください。

構文構文構文構文WRBpBlockElem *WRB_nextPBElem(

dvoid *WRBCtx,WRBpBlock hPBlock,dvoid *pos);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値パラメータ・ブロック内の使用可能な次のエレメントへのポインタ。失敗すると、WRB_nextPBElem() は NULL を返します。

例例例例WRBpBlock hPBlock;WRBpBlockElem *elem;dvoid *pos;

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 検索するパラメータ・ブロック。

→ pos 使用可能な次のパラメータ・ブロックのエレメントを指す非透過のポインタ。先にWRB_firstPBElem()をコールして、この値を初期化する必要があります。

基本 API 2-45

Page 74: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_nextPBElem()

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* do something with elem */}

関連項目関連項目関連項目関連項目WRB_firstPBElem()

2-46 Oracle Application Server C API リファレンス

Page 75: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_numPBElem()

WRB_numPBElem()

パラメータ・ブロックのエレメント数を返します。この関数をWRB_walkPBlock() と一緒に使用して、パラメータ・ブロックのエレメントを繰り返し検索できます。

構文構文構文構文sb4WRB_numPBElem(

dvoid *WRBCtx,WRBpBlock hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したパラメータ・ブロック内のエレメント数。

例例例例WRB_walkPBlock() の例を参照してください。

関連項目関連項目関連項目関連項目WRB_walkPBlock()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock パラメータ・ブロック。

基本 API 2-47

Page 76: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_printf()

WRB_printf()

指定されたフォーマットの文字列に従ってテキスト・バッファを作成し、要求元に書き出します。書き出されるバッファは 10KB未満にしてください。これより大きい場合、動作は保証されません。

この関数を標準の Cの printf 関数と同じように使用して、要求元へのテキスト文字列のフォーマットおよび書込みを行います。printf と同様、引数を可変にすることができます。

構文構文構文構文sb4WRB_printf(

dvoid *WRBCtx,text *formatStr, ...);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値書き込んだバイト数。エラーが発生した場合は -1。

関連項目関連項目関連項目関連項目WRB_read() 、WRB_write()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ formatStr 出力バッファの書式を指定するテキスト文字列へのポインタ。文字列には printf スタイルの書式指定子を含めることができます。

→ ... formatStrの各書式指定子の引数。

2-48 Oracle Application Server C API リファレンス

Page 77: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_read()

WRB_read()

リクエストの POSTデータから、連続ストリームとして指定されたバイト数を読み込みます。

exec関数からこの関数をコールして、現行のリクエストに対応する POSTデータを取得できます。この関数は、特にバイナリなどの rawの POSTデータをバッファリングする場合に適しています。

POSTデータが名前と値のペアの形式を使用する場合は、通常WRB_getParsedContent()をコールする方が便利です。

構文構文構文構文sb4WRB_read(

dvoid *WRBCtx,text *sBuffer,sb4 nBufferSize);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値読み込んだバイト数。エラーが発生した場合は- 1。

関連項目関連項目関連項目関連項目WRB_getParsedContent() 、WRB_write()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ sBuffer POSTデータを読み込むバッファへのポインタ。このバッファ領域は、ユーザーが確保する必要があります。

→ nBufferSize バッファのバイト数。

基本 API 2-49

Page 78: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_recvHeaders()

WRB_recvHeaders()

現行リクエストの HTTPヘッダーが含まれるパラメータ・ブロックを返します。

パラメータ・ブロックの使用終了時に、WRB_destroyPBlock() をコールして、これを解放する必要があります。

構文構文構文構文WAPIReturnCodeWRB_recvHeaders(

dvoid *WRBCtx,WRBpBlock *hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例WRB_recvHeaders() をWRB_firstPBElem() およびWRB_nextPBElem() と一緒に使用して、リクエスト・ヘッダーを取り出すことができます。

WRBpBlock hPBlock;WAPIReturnCode ret;WRBpBlockElem *elem;dvoid *pos;

ret = WRB_recvHeaders(WRBCtx, &hPBlock);if (ret != WRB_SUCCESS) { return (WRB_ERROR);}

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hPBlock リクエスト・ヘッダーが含まれるパラメータ・ブロックへのポインタ。

2-50 Oracle Application Server C API リファレンス

Page 79: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_recvHeaders()

for (elem = WRB_firstPBElem(WRBCtx, hPBlock, &pos); elem; elem = WRB_nextPBElem(WRBCtx, hPBlock, pos)) { /* do something with elem */}

WRB_destroyPBlock(WRBCtx, hPBlock);

関連項目関連項目関連項目関連項目WRB_setCookies() 、WRB_destroyPBlock()

基本 API 2-51

Page 80: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_sendHeader()

WRB_sendHeader()

現行リクエストに対するレスポンスとして、要求元に HTTPレスポンス・ヘッダーを送信します。最初にパラメータ・ブロックを割り当て、各ヘッダーに対するエレメントを追加する必要があります。

リクエストを他の URLにリダイレクトする場合は、WRB 2.1のWRBReturnHTTPRedirect() 関数を使用しないでください。かわりに、名前が"Location "で、値にリクエストをリダイレクトする URLを持つエレメントをパラメータ・ブロックに追加します。次に、このパラメータ・ブロックに対してWRB_sendHeader() をコールするとリクエストがリダイレクトされます。

WRB_sendHeader() はWRB_write() の後にコールしないでください。

構文構文構文構文WAPIReturnCodeWRB_sendHeader(

dvoid *WRBCtx,WRBpBlock hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。WRB_write() の後にWRB_sendHeader() をコールした場合、WRB_sendHeader() は失敗して、WRB_TOOLATEを返します。

関連項目関連項目関連項目関連項目WRB_createPBlock() 、WRB_addPBElem()、WRB_write()

注意注意注意注意 : 200以外の値を持つステータス行を返す場合、WRB_sendHeader()のかわりにWRB 2.xの APIであるWRBReturnHTTPError()を使用してください。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock 現行リクエストへのレスポンスに設定されるヘッダー・データが含まれるパラメータ・ブロック。

2-52 Oracle Application Server C API リファレンス

Page 81: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_setAuthBasic()

WRB_setAuthBasic()

コール側カートリッジにリクエストを発行する認証要求元に、新規の基本認証レルムを作成します。

authorize関数からこの関数をコールして、基本認証レルムを作成できます。ユーザーのカートリッジは、このレルムを使用して要求元を認証できます。カートリッジがこの関数を使用してレルムを作成する場合、カートリッジの認証は authorize関数で行う必要があります。

この関数がコールされると、WRBは szRealm で指定されたレルムをキャッシュに入れます。authorize関数からクライアントが認可されないことを示す戻り値が返された場合、WRBはキャッシュに入ったレルム名を使用して、クライアントに返すエラー・メッセージを作成します。

構文構文構文構文WAPIReturnCodeWRB_setAuthBasic(

dvoid *WRBCtx,text *szRealm);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_setAuthDigest() 、WRB_setAuthServer()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szRealm 作成するレルム名。

基本 API 2-53

Page 82: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_setAuthDigest()

WRB_setAuthDigest()

コール側カートリッジにリクエストを発行する認証要求元に、新規のダイジェスト認証レルムを作成します。

authorize関数からこの関数をコールして、ダイジェスト認証レルムを作成できます。ユーザーのカートリッジは、このレルムを使用して要求元を認証します。カートリッジがこの関数を使用してレルムを作成する場合、カートリッジの認証は authorize関数で行う必要があります。

この関数がコールされると、WRBは sz* パラメータで指定された値をキャッシュに入れます。authorize関数からクライアントが認可されないことを示す戻り値が返された場合、WRBはキャッシュに入ったレルム名を使用して、クライアントに返すエラー・メッセージを作成します。

構文構文構文構文WAPIReturnCodeWRB_setAuthDigest(

dvoid *WRBCtx,text *szRealm,text *szOpaque,text *szNonce,text *szStale);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_setAuthBasic() 、WRB_setAuthServer()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szRealm レルム名。

→ szOpaque このパラメータは、RFC 2069で定義されています。

→ szNonce このパラメータは、RFC 2069で定義されています。

→ szStale このパラメータは、RFC 2069で定義されています。

2-54 Oracle Application Server C API リファレンス

Page 83: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_setAuthServer()

WRB_setAuthServer()

要求元の認証に使用する認証方式または制限方式(あるいはその両方)を指定します。

init 関数または authorize関数からこの関数をコールして、既存の認証や制限方式の組合せを指定します。認証サーバーはこれを使用して、ユーザーのカートリッジにリクエストを発行する要求元を認証します。szProtectStringパラメータで、次のように方式をエンコーディングする必要があります。

scheme(realm) [ op scheme(realm) [ op scheme(realm) ... ] ]

opは '&'(and演算子)または '|'(or演算子)のいずれかです。大カッコは構文の一部ではなく、追加の認証、制限方式(レルム)のペアがオプションであることを示します。これらの式はグループ化されずに、演算子は左から右へと厳密に評価されます。

schemeは、次のいずれかになります。

■ Basic - 基本認証(要求元とサーバー間でパスワードは暗号化されずに送信される)

■ Digest - ダイジェスト認証(パスワードは "ダイジェスト "と呼ばれる形式で暗号化されて送信される)

■ Basic_Oracle - 基本データベース認証(データベース接続に使用されるパスワードは暗号化されずに送信される)

■ IP - 要求元のインターネット(IP)アドレスに基づく制限

■ Domain - 要求元の DNSドメインに基づく制限

realmに指定する認証方式のレルムは、WRB設定データに定義された認証レルムにする必要があります。

realmに指定する制限方式のレルムは、WRB設定に定義された IPアドレスのグループ名または DNSのドメイン名にする必要があります。

この関数をカートリッジの initコールバックからコールする場合、カートリッジのauthorizeコールバックはコールされないため注意してください。

構文構文構文構文WAPIReturnCodeWRB_setAuthServer(

dvoid *WRBCtx,text *szProtectStr);

基本 API 2-55

Page 84: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_setAuthServer()

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

例例例例次の例のWRB_setAuthServer() コールでは、コール側カートリッジにリクエストを発行する要求元がWRB設定で定義された基本認証レルム "Admin Server" を使用して自分自身を認証する必要があります。また、要求元の IPアドレスは、WRB設定で定義された IPアドレスの "HQ Hosts"グループの中にある必要があります。

WAPIReturnCode ret;

ret = WRB_setAuthServer(WRBCtx, (text *)"Basic(Admin Server) & IP(HQ Hosts)");if (ret != WRB_SUCCESS) { return (WRB_ERROR);}

関連項目関連項目関連項目関連項目WRB_setAuthBasic() 、WRB_setAuthDigest()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ szProtectString 認証サーバーが要求元の認証に使用する認証または制限方式(あるいはその両方)のテキスト文字列。

2-56 Oracle Application Server C API リファレンス

Page 85: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_setCookies()

WRB_setCookies()

現行リクエストのレスポンス・ヘッダーに Cookieを追加します。

構文構文構文構文WAPIReturnCodeWRB_setCookies(

dvoid *WRBCtx,text *name,text *value,text *domain,text *path,text *expire,boolean secure);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_getCookies()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ name Cookieの名前。

→ value Cookieの値。

→ domain 以降のリクエストで要求元が Cookieを送信する DNSのドメイン。通常、カートリッジが稼動しているドメインです。

→ path 要求元が Cookieを送信する URIのパス。通常、カートリッジを指すURIです。

→ expire Cookieの有効期限。標準の Cookieフォーマットの日付 /時刻スタンプを使用します。

Wdy, DD-Mon-YYYY HH:MM:SS GMT

→ secure このパラメータを TRUEに設定すると、関数は SSLを使用してCookieを送信します。

基本 API 2-57

Page 86: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_timestamp()

WRB_timestamp()

指定したロケーション IDと時間の付いたエントリを wrb.pif ファイルにログ出力します。この関数をリクエスト内で複数回コールして、そのタイムスタンプを調べることによって、カートリッジのパフォーマンスを分析できます。

この関数を使用する前に、この行を wrb.app ファイルの [SYSTEM]セクションに追加して、タイムスタンプのメカニズムを使用可能にする必要があります。

[SYSTEM]enable_timing_stats = logger

wrb.pif ファイルのエントリは、次のような形式になっています。

requestID, locationID, timestamp

通常、この関数を操作の開始時と終了時にコールしてその操作にどれだけの時間がかかるかを測定します。

構文構文構文構文voidWRB_timestamp(

dvoid *WRBCtx,ub4 locID);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値なし

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ locID タイムスタンプの識別子。ロケーション ID の 0から 65536までは、WRBにより確保されています。

2-58 Oracle Application Server C API リファレンス

Page 87: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_walkPBlock()

WRB_walkPBlock()

パラメータ・ブロックの指定した位置に存在するエレメントへのポインタを返します。

この関数をWRB_numPBElem()と一緒に使用して、パラメータ・ブロックのエレメントを繰り返し検索できます。

戻り値のポインタが参照する記憶領域を解放しないでください。

構文構文構文構文WRBpBlockElem *WRB_walkPBlock(

dvoid *WRBCtx,WRBpBlock hPBlock,sb4 nPosition);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値パラメータ・ブロックの指定した位置に存在するエレメントへのポインタ。失敗するとNULL を返します。

注意注意注意注意 : 戻り値は、検索されたエレメントが削除されるまで有効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hPBlock パラメータ・ブロック。

→ nPosition パラメータ・ブロック内のエレメントの位置。

基本 API 2-59

Page 88: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_walkPBlock()

例例例例WRBpBlockElem *elem;sb4 numelems;

numelems = WRB_numPBElem(WRBCtx, hPBlock);

for (i = 0; i < numelems; i++) { elem = WRB_walkPBlock (WRBCtx, hPBlock, i); /* do something with the element */}

関連項目関連項目関連項目関連項目WRB_findPBElem()

2-60 Oracle Application Server C API リファレンス

Page 89: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_write()

WRB_write()

指定されたバッファから指定されたバイト数を要求元に書き出します。

構文構文構文構文sb4WRB_write(

dvoid *WRBCtx,text *sBuffer,sb4 nBufferSize);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値書き出すバイト数。エラーが発生した場合は - 1。

関連項目関連項目関連項目関連項目WRB_flushData() 、WRB_printf() 、WRB_read()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ sBuffer 書き出されるデータが保管されているバッファへのポインタ。

→ nBufferSize バッファのバイト数。

注意注意注意注意 : 戻り値が書き込むデータのサイズより小さい場合は、データの先頭から再度書き込みます。

基本 API 2-61

Page 90: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_write()

2-62 Oracle Application Server C API リファレンス

Page 91: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

セッショ

3

セッションセッションセッションセッション API

内容内容内容内容■ SAPIReturnCodeの値

■ セッションの初期化関数と終了関数

■ WRB_IsInSession()

■ WRB_SessionEnable()

■ WRB_SessionEnd()

■ WRB_SessionGetCtx()

■ WRB_SessionGetCurrentHndl()

■ WRB_SessionGetID()

■ WRB_SessionGetIdleTm()

■ WRB_SessionSetCtx()

■ WRB_SessionSetIdleTm()

■ WRB_SessionStart()

ン API 3-1

Page 92: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

SAPIReturnCodeの値

SAPIReturnCode の値の値の値の値SAPIReturnCode 型は、セッション APIが関数の戻り値を返すために使用されます。値は次のいずれかです。

これらの値の詳細は、各関数の「戻り値」の項を参照してください。

表表表表 3-1 SAPIReturnCode の値の値の値の値

値値値値 説明説明説明説明

SAPI_SUCCESS 関数が成功しました。

SAPI_FAIL エラーが発生しました。

SAPI_ALREADYINSESSION カートリッジ・インスタンスはすでにセッション・コンテキストに入っているため、別のセッションを開始できません。

SAPI_INVALIDHNDL 指定されたセッション・ハンドルは無効です。

SAPI_NOTALLOWED 現在、この関数はコールできません。

SAPI_NOTINSESSION カートリッジ・インスタンスはセッション・コンテキストに入っていません。

3-2 Oracle Application Server C API リファレンス

Page 93: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

セッションの初期化関数と終了関数

セッションの初期化関数と終了関数セッションの初期化関数と終了関数セッションの初期化関数と終了関数セッションの初期化関数と終了関数

セッション初期化コールバック関数は、カートリッジ・インスタンスのセッションの開始時にコールされます。このコールバックはWRB_SessionEnable()で登録します。

セッション終了コールバック関数は、カートリッジ・インスタンスのセッションの終了直前にコールされます。このコールバックはWRB_SessionEnable()で登録します。

構文構文構文構文WRBReturnCode(*SessionInit)(

dvoid *WRBCtx,void *clientctx,void **sessionctx);

WRBReturnCode(*SessionTerm)(

dvoid *WRBCtx,void *clientctx,void *sessionctx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値この関数は次の値のいずれかを返します。WRB_DONE - 関数は正常終了しました。WRB_ERROR - 致命的ではないエラーが発生しました。WRB_ABORT - 致命的エラーが発生しました。カートリッジ・インスタンスをシャットダウンする必要があります。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ clientctx クライアント・コンテキスト。

← sessionctx (初期化)セッション・コンテキスト。セッション初期化コールバックで、セッション・コンテキストの値を設定します。

→ sessionctx (終了)セッション・コンテキスト。セッション終了コールバックで、セッション・コンテキストの値を取り出せます。

セッション API 3-3

Page 94: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_IsInSession()

WRB_IsInSession()

カートリッジ・インスタンスが、現在セッションに入っているかどうかを判断します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文booleanWRB_IsInSession( dvoid *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値カートリッジ・インスタンスがセッションに入っている場合は TRUE、そうでない場合はFALSE。

この関数が authorizeコールバックまたは execコールバック内からコールされていない場合は、FALSEを返します。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

3-4 Oracle Application Server C API リファレンス

Page 95: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionEnable()

WRB_SessionEnable()

カートリッジに対してセッションを使用可能にし、セッションの初期化と終了のコールバック関数を登録し、セッションのアイドル時間を設定します。

この関数はカートリッジ・インスタンスの初期化コールバックからのみコール可能です。他の場所からコールされるとエラーが発生します。

このコールはカートリッジによって使用され、各新規クライアントのセッションを開始したり、セッションの開始および終了の通知を受け取ります。

構文構文構文構文SAPIReturnCodeWRB_SessionEnable(

dvoid *WRBCtx,SessionInit init,SessionTerm term,int sessionIdle);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッションのパラメータが正常に設定され、セッションは正常に開始されました。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ init セッション初期化関数。3-3ページの「セッションの初期化関数と終了関数」を参照。

→ term セッションの終了関数。

→ sessionIdle セッションのアイドル時間(秒)。

セッション API 3-5

Page 96: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionEnd()

WRB_SessionEnd()

現行クライアントのセッションを終了します。その後、同じクライアントがこのカートリッジへ続けてリクエストを送ると、「Session Expired」というエラー・メッセージが返されます。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionEnd(

dvoid *WRBCtx,SessionHndl hndl);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッションは正常にクローズされました。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl セッションをクローズするためのハンドル。これは、WRB_SessionStart()またはWRB_SessionGetCurrentHndl()の hndlパラメータで返された値です。

3-6 Oracle Application Server C API リファレンス

Page 97: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionGetCtx()

WRB_SessionGetCtx()

現行のセッション・コンテキストを返します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionGetCtx(

dvoid *WRBCtx,SessionHndl hndl,void **sesCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッション・コンテキストは正常に取り出されました。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl 現行セッションへのハンドル。

← sesCtx セッション・コンテキスト。

セッション API 3-7

Page 98: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionGetCurrentHndl()

WRB_SessionGetCurrentHndl()

現行のセッション・ハンドルを返します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionGetCurrentHndl(

dvoid *WRBCtx,SessionHndl *hndl);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッション・ハンドルは正常に取り出されました。SAPI_NOTINSESSION - 現在、カートリッジ・インスタンスはセッションに入っていません。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hndl 現行セッションへのハンドル。

3-8 Oracle Application Server C API リファレンス

Page 99: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionGetID()

WRB_SessionGetID()

現行セッションに対応するセッション ID を取得します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionGetID(

dvoid *WRBCtx,SessionHndl hndl,IDType sid);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッション ID は正常に取り出されました。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl 現行セッションへのハンドル。

← sid セッション ID。

セッション API 3-9

Page 100: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionGetIdleTm()

WRB_SessionGetIdleTm()

現行セッションのアイドル時間を取得します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionGetIdleTm(

dvoid *WRBCtx,SessionHndl hndl,int idleTm);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッションのアイドル時間が正常に取り出されました。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl 現行セッションへのハンドル。

← idleTm セッションのアイドル時間(秒)。

3-10 Oracle Application Server C API リファレンス

Page 101: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionSetCtx()

WRB_SessionSetCtx()

セッション・コンテキストを設定します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionSetCtx(

dvoid *WRBCtx,SessionHndl hndl,void *sessionctx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッション・コンテキストは正常に設定されました。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl 現行セッションへのハンドル。

→ sesCtx 設定するセッション・コンテキスト。

セッション API 3-11

Page 102: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionSetIdleTm()

WRB_SessionSetIdleTm()

現行セッションのアイドル時間を設定します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionSetIdleTm(

dvoid *WRBCtx,SessionHndl hndl,int seconds);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッションのアイドル時間が正常に設定されました。SAPI_NOTALLOWED - 現在、このコールは許可されていません。SAPI_INVALIDHNDL - 渡されたハンドルは無効です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

→ hndl 現行セッションへのハンドル。

→ seconds セッションのアイドル時間(秒)。

3-12 Oracle Application Server C API リファレンス

Page 103: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionStart()

WRB_SessionStart()

現行クライアントのセッションを開始し、セッション・ハンドルをクライアントに返します。カートリッジがすでにセッション可能になっている場合、この関数はエラーを返します。

この関数は、カートリッジの authorizeコールバックまたは execコールバックからのみコール可能です。

構文構文構文構文SAPIReturnCodeWRB_SessionStart(

dvoid *WRBCtx,SessionHndl *hndl);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値SAPI_SUCCESS - セッションは正常に開始しました。SAPI_ALREADYINSESSION - カートリッジ・インスタンスはすでにセッションに入っています。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBエンジンからカートリッジ関数に渡されます。

← hndl 新しいセッションへのハンドル。

セッション API 3-13

Page 104: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionStart()

3-14 Oracle Application Server C API リファレンス

Page 105: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Inter-Cartridge Exchangeサービ

4

Inter-Cartridge Exchange サービスサービスサービスサービス API

カートリッジは Inter-Cartridge Exchangeサービス (ICX)を使用して、HTTPリクエストを発行できます。発行可能なリクエストは他のカートリッジ、静的 HTML ページまたは CGIスクリプトに対するリクエストです。

WRB ICX サービスサービスサービスサービス API 関数関数関数関数■ WRB_ICXcreateRequest() - リクエスト・オブジェクトを作成する。

■ WRB_ICXdestroyRequest() - リクエスト・オブジェクトを破棄する。

■ WRB_ICXfetchMoreData() - WRB_ICXmakeRequest() の終了後、さらに多くのデータを取得する。

■ WRB_ICXgetHeaderVal() - レスポンス・ヘッダーの値を取得する。

■ WRB_ICXgetInfo() - リクエストの情報を取得する。

■ WRB_ICXgetParsedHeader() - レスポンス・ヘッダーを取得する。

■ WRB_ICXmakeRequest() - リクエストを発行する。

■ WRB_ICXsetAuthInfo() - リクエストの認証ヘッダーを設定する。

■ WRB_ICXsetContent() - リクエストのコンテンツ・データを設定する。

■ WRB_ICXsetHeader() - リクエスト・ヘッダーを設定する。

■ WRB_ICXsetMethod() - リクエストで使用する HTTPメソッドを設定する。

■ WRB_ICXsetNoProxy() - プロキシ・サーバーを使用しないドメインを指定する。

■ WRB_ICXsetProxy() - プロキシ・サーバーを指定する。

■ WRB_ICXsetTXAttribute() - リクエストのトランザクションを使用可能 /使用禁止にする。

■ WRB_ICXsetWalletInfo() - ICXリクエストに SSLの使用を指定する。

ス API 4-1

Page 106: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXcreateRequest()

WRB_ICXcreateRequest()

URLで指定されたリクエストをエンコーディングする非透過のリクエスト・オブジェクトに対するハンドルを新規に割り当て、そのハンドルを返します。

リクエストを発行するには、WRB_ICXcreateRequest() コールの後にWRB_ICXmakeRequest() をコールします。リクエストを異常終了させる場合やリクエストが完了した場合は、WRB_ICXdestroyRequest() をコールしてリクエストに割り当てたリソースを解放します。

構文構文構文構文dvoid*WRB_ICXcreateRequest(

dvoid *WRBCtx,text *url);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値新規に作成したリクエスト・オブジェクトへのハンドル。失敗すると NULL を返します。

関連項目関連項目関連項目関連項目WRB_ICXmakeRequest() 、WRB_ICXdestroyRequest()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ url リクエスト URLへのポインタ。これには、絶対 URLまたは相対URLが使用可能です。相対 URLの場合、方式(httpまたは https)、ホスト名およびポート番号は、ICX リクエストを送信するカートリッジが受け取るものと同じです。ICX リクエストに SSLを使用している場合は、必ず https方式を使用していることを確認してください。詳細は、WRB_ICXsetWalletInfo()を参照してください。

4-2 Oracle Application Server C API リファレンス

Page 107: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXdestroyRequest()

WRB_ICXdestroyRequest()

指定したリクエストに割り当てたリソースを解放します。この関数は次のような場合にコールします。

■ リクエストが完了した場合

■ WRB_ICXcreateRequest() を使用して作成されたが、WRB_ICXmakeRequest() を使用して発行されなかったリクエストを取り消す場合

この関数をコールしないと、カートリッジでメモリー・リークが発生する可能性があります。

構文構文構文構文WAPIReturnCodeWRB_ICXdestroyRequest(

dvoid *WRBCtx,dvoid *hRequest);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXcreateRequest() 、WRB_ICXmakeRequest()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 破棄するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

Inter-Cartridge Exchangeサービス API 4-3

Page 108: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXfetchMoreData()

WRB_ICXfetchMoreData()

直前のWRB_ICXmakeRequest() コールでWRB_MOREDATAが返された場合に、要求されたバイト数または使用可能なバイト数を読み込みます。

構文構文構文構文WRBAPIReturnCodeWRB_ICXfetchMoreData(

dvoid *WRBCtx,dvoid *hRequest,dvoid **response,ub4 *responseLength,ub4 chunkSize);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 発行するリクエスト。

← response レスポンス・データへのポインタを保管する場所へのポインタ。レスポンス・データのメモリーは、Oracle Application Serverが割り当てます。直接割り当てることはできません。ただし、WRB_ICXdestroyRequest()をコールしてメモリーを解放する必要があります。

← responseLength レスポンス・データの長さを保管する場所へのポインタ。

→ chunkSize このパラメータが 0(ゼロ)以外の場合、リクエストのレスポンスのサイズはこの値に制限されます。この場合、レスポンス全体を受け取るまでWRB_ICXfetchMoreData()を繰り返しコールする必要があります。0(ゼロ)の場合、データは返されません。

4-4 Oracle Application Server C API リファレンス

Page 109: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXfetchMoreData()

例例例例WAPIReturnCode ret;dvoid *hRequest;ub4 bufsize = 1024;void *buf;ub4 respLength;

/* create and initialize request */ret = WRB_ICXmakeRequest(WRBCtx, hRequest, &buf, &respLength, bufsize, 0);

/* do something with data */

while (ret == WRB_MOREDATA) { ret = WRB_ICXfetchMoreData(WRBCtx, hRequest, &buf, &respLength, bufsize, 0); /* do something with data */}

WRB_ICXdestroyRequest(WRBCtx, hRequest); /* free memory */

関連項目関連項目関連項目関連項目WRB_ICXmakeRequest() 、WRB_ICXcreateRequest() 、WRB_ICXsetMethod() 、WRB_ICXsetAuthInfo() 、WRB_ICXsetHeader() 、WRB_ICXsetContent()

Inter-Cartridge Exchangeサービス API 4-5

Page 110: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXgetHeaderVal()

WRB_ICXgetHeaderVal()

WRB_ICXmakeRequest() により発行されたリクエストに対するレスポンスから指定したHTTPヘッダーの値を取り出し、そのポインタを返します。

特に、レスポンス・ヘッダーにのみ保管されているレスポンス・データを取り出す場合に便利です。

構文構文構文構文text *WRB_ICXgetHeaderVal(

dvoid *WRBCtx,dvoid *hRequest,text *name);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したヘッダーの値。失敗すると NULL を返します。

関連項目関連項目関連項目関連項目WRB_ICXgetInfo()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest レスポンスからヘッダー値を抽出するリクエスト。

→ name 値を取得するヘッダーの名前へのポインタ。

4-6 Oracle Application Server C API リファレンス

Page 111: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXgetInfo()

WRB_ICXgetInfo()

指定したリクエストに関する情報を含む文字列を返します。infoTypeパラメータは、返される情報の種類を示します。

リクエストが完了した時点(WRB_ICXmakeRequest() が終了した時点)でWRB_ICXgetInfo() をコールして、リクエストに関する情報を取得できます。特に、該当する認証データを指定してリクエストを再発行する必要がある場合に、レルム名を取得するのに便利です。

構文構文構文構文text *WRB_ICXgetInfo(

dvoid *WRBCtx,dvoid *hRequest,WRBInfoType infoType);

パラメータパラメータパラメータパラメータ

WRBInfoTypeWRBInfoTypeの有効な値は次のとおりです。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 情報を取得するリクエスト。

→ infoType 必要な情報の種類。次を参照してください。

表表表表 4-1 WRBInfoType

値値値値 説明説明説明説明

STATUSCODE HTTPレスポンス・コード。

HTTPVERSION レスポンスで使用される HTTPプロトコルのバージョン。

REASONPHRASE HTTPレスポンス・コードに対応する理由テキスト文字列。

REALM レスポンスで指定される認証レルムの名前。

Inter-Cartridge Exchangeサービス API 4-7

Page 112: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXgetInfo()

戻り値戻り値戻り値戻り値要求した情報の文字列へのポインタ。失敗すると NULL を返します。

4-8 Oracle Application Server C API リファレンス

Page 113: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXgetParsedHeader()

WRB_ICXgetParsedHeader()

WRB_ICXmakeRequest() で発行した ICX リクエストに対するレスポンスのヘッダー値をパラメータ・ブロックに入れて返します。

特に、レスポンス・ヘッダーにのみ保管されているレスポンス・データを取り出す場合に便利です。

構文構文構文構文WAPIReturnCodeWRB_ICXgetParsedHeader(

dvoid *WRBCtx,dvoid *hRequest,WRBpBlock *hPblock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXgetHeaderVal()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest リクエスト。

← hPblock 解析されたヘッダー・データを含むパラメータ・ブロックを保管する場所へのポインタ。パラメータ・ブロックのメモリーは、Oracle Application Serverによって割り当てられます。直接割り当てることはできません。メモリーを解放するために、WRB_ICXdestroyRequest()をコールする必要があります。

Inter-Cartridge Exchangeサービス API 4-9

Page 114: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXmakeRequest()

WRB_ICXmakeRequest()

指定されたリクエストを発行します。WRB_ICXcreateRequest() をコールしてリクエストを作成したり、他の ICX API関数(WRB_ICXsetHeader() やWRB_ICXsetContent()など)をコールしてリクエストを用意した後、WRB_ICXmakeRequest() をコールしてそのリクエストを発行できます。

構文構文構文構文WAPIReturnCodeWRB_ICXmakeRequest(

dvoid *WRBCtx,dvoid *hRequest,dvoid **response,ub4 *responseLength,ub4 chunkSize,ub1 sendToBrowser);

パラメータパラメータパラメータパラメータ

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 発行するリクエスト。

← response レスポンス・データへのポインタを保管する場所へのポインタ。リクエストにデータが存在しない場合は、NULL に設定されます。レスポンスのメモリーは、Oracle Application Serverが割り当てる点に注意してください。このデータのメモリーを直接割り当てることはできません。メモリーは、WRB_ICXdestroyRequest()をコールすると解放されます。

← responseLength レスポンス・データの長さを保管する場所へのポインタ。

→ chunkSize このパラメータが 0(ゼロ)以外の場合、リクエストのレスポンスのサイズはこの値に制限されます。この場合、レスポンス全体を受け取るまでWRB_ICXfetchMoreData()を繰り返しコールする必要があります。

→ sendToBrowser このパラメータが 0(ゼロ)以外の場合、リクエストからのレスポンスは発行したブラウザへ直接送信されます。この場合、responseパラメータには NULL が含まれます。

4-10 Oracle Application Server C API リファレンス

Page 115: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXmakeRequest()

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXcreateRequest() 、WRB_ICXsetMethod() 、WRB_ICXsetAuthInfo() 、WRB_ICXsetHeader() 、WRB_ICXsetContent()

Inter-Cartridge Exchangeサービス API 4-11

Page 116: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetAuthInfo()

WRB_ICXsetAuthInfo()

リクエストに付加する認証ヘッダーのデータを設定します。

ユーザーのカートリッジが他のカートリッジにリクエストを発行し、そのカートリッジが自分の認証を必要とする場合、この関数をコールして他のカートリッジに対する個々のリクエストごとに認証ヘッダーを設定できます。

構文構文構文構文WAPIReturnCodeWRB_ICXsetAuthInfo(

dvoid *WRBCtx,dvoid *hRequest,text *username,text *password);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 認証を確立するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ username リクエスト認証のユーザー名。

→ password ユーザー名に対するパスワード。

4-12 Oracle Application Server C API リファレンス

Page 117: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetContent()

WRB_ICXsetContent()

指定されたリクエストに対し、リクエストの内容(たとえば、問合せ文字列や POSTデータなど)を設定します。通常、フォーム・データをブラウザから他のカートリッジに渡す場合は、内容データを設定する必要があります。その後、受取り側のカートリッジはWRB_getParsedContent()を使用してデータを抽出できます。

リクエストの内容データを設定するには、まずWRB_createPBlock() を利用して、内容データを含むパラメータ・ブロックを割り当てる必要があります。その後、WRB_ICXsetContent() にパラメータ・ブロックを渡すことができます。WRB_ICXcreateRequest() が返すリクエスト・ハンドルを渡すことによってリクエストを特定します。

パラメータ・ブロックに名前と値のペアを入れることができます。値は空の文字列でも構いません。

構文構文構文構文WAPIReturnCodeWRB_ICXsetContent(

dvoid *WRBCtx,dvoid *hRequest,WRBpBlock hPBlock);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXcreateRequest() 、WRB_ICXsetHeader() 、WRB_ICXsetMethod()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest 内容を指定するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ hPBlock 内容を含むパラメータ・ブロック。

Inter-Cartridge Exchangeサービス API 4-13

Page 118: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetHeader()

WRB_ICXsetHeader()

指定されたリクエストの HTTPヘッダー・データを設定します。

リクエストのヘッダー・データを設定するには、まずWRB_createPBlock() を利用して、内容データを含むパラメータ・ブロックを割り当てる必要があります。その後、WRB_ICXsetHeader() にそのパラメータ・ブロックを渡すことができます。WRB_ICXcreateRequest() が返すリクエスト・ハンドルを渡すことによってリクエストを特定します。

構文構文構文構文WAPIReturnCodeWRB_ICXsetHeader(

dvoid *WRBCtx,dvoid *hRequest,WRBpBlock hPBlock,boolean useOldHdr);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXcreateRequest() 、WRB_ICXsetContent()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest ヘッダーを設定するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ hPBlock ヘッダー情報を含むパラメータ・ブロック。

→ useOldHdr TRUEに設定した場合、ICX リクエストはパラメータ・ブロックで指定したデータに元のリクエストのヘッダー・データを結合します。Cookieと認証ヘッダーは含まれないため注意してください。

FALSEに設定した場合は、パラメータ・ブロックのヘッダー・データのみが使用されます。

4-14 Oracle Application Server C API リファレンス

Page 119: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetMethod()

WRB_ICXsetMethod()

指定されたリクエストに対して、GETや POSTなどのリクエスト・メソッドを設定します。

WRB_ICXcreateRequest() をコールしてリクエストを作成した後に、WRB_ICXsetMethod() をコールしてリクエストのリクエスト方式を指定する必要があります。WRB_ICXsetMethod() をコールしない場合、デフォルトで、リクエスト方式はGETになります。

構文構文構文構文WAPIReturnCodeWRB_ICXsetMethod(

dvoid *WRBCtx,dvoid *hRequest,WRBMethod method);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXcreateRequest()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest メソッドを設定するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ method リクエスト・メソッド。OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACEのいずれかになります。

Inter-Cartridge Exchangeサービス API 4-15

Page 120: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetNoProxy()

WRB_ICXsetNoProxy()

WRB_ICXsetProxy() で指定したプロキシ・サーバーを使用しない DNSドメインのリストを指定します。これ以降、ここで指定したドメインに対するリクエスト URLは、プロキシ・サーバーにルーティングされません。

カートリッジがWRB_ICXsetProxy() をコールしてプロキシ・サーバーのリクエスト変換を設定しているときに、すべての DNSドメインに対するリクエストがそのプロキシ・サーバーを使用しないようにする場合、WRB_ICXsetNoProxy() を使用して、プロキシ・サーバーを介さずにリクエストを直接送信する先のドメインをカンマ区切りのリストで指定することが可能です。

この関数をコールするかわりに、直接リクエストを送信するドメインのカンマ区切りのリストに no_proxy 環境変数を設定することもできます。

構文構文構文構文WAPIReturnCodeWRB_ICXsetNoProxy(

dvoid *WRBCtx,text *noProxy);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXsetProxy()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ noProxy プロキシ・サーバーを介さずに直接リクエストを送信するドメインのカンマ区切りのリストへのポインタ。

4-16 Oracle Application Server C API リファレンス

Page 121: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetProxy()

WRB_ICXsetProxy()

ICX リクエストをファイアウォール外にルーティングするときに使用するプロキシ・サーバーを指定します。

カートリッジがファイアウォール内のマシンで動作しているときに ICX リクエストをファイアウォール外のマシンに発行する必要がある場合は、WRB_ICXsetProxy() を使用してリクエストをファイアウォール外に送信できるプロキシ・サーバーのアドレスを指定できます。

この関数をコールするかわりに、使用するプロキシ・サーバーの名前に http_proxy 環境変数を設定することもできます。

構文構文構文構文WAPIReturnCodeWRB_ICXsetProxy(

dvoid *WRBCtx,text *proxyAddress);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_ICXsetNoProxy()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ proxyAddress プロキシ・サーバーのアドレスの文字列。

Inter-Cartridge Exchangeサービス API 4-17

Page 122: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetTXAttribute()

WRB_ICXsetTXAttribute()

ICX リクエストのトランザクションを使用可能または使用禁止にします。ICXリクエストのターゲットがトランザクション・サービスを使用するカートリッジの場合は、トランザクションを使用可能にする必要があります。

デフォルトでは、ICX リクエストはトランザクションを使用可能ではありません。

構文構文構文構文WAPIReturnCodeWRB_ICXsetTXAttribute(

dvoid *WRBCtx,dvoid *hRequest,boolean transactional);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

注意注意注意注意 : この関数は、Oracle Application Serverの Enterprise Editionでのみ使用可能です。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest トランザクション属性を設定するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ transactional リクエストのトランザクションを使用可能または使用禁止にします。使用可能にするには、このパラメータを TRUEに設定します。使用禁止にするには、このパラメータを FALSEに設定します。

4-18 Oracle Application Server C API リファレンス

Page 123: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetWalletInfo()

WRB_ICXsetWalletInfo()

ICX/SSLリクエストの作成時に使用するWalletを指定します。この関数を使用する場合、ICX リクエストを作成(WRB_ICXcreateRequest() )した後、それを送信(WRB_ICXmakeRequest() )する前にコールします。

Walletは、http方式ではなく https方式(すなわち SSL)を使用する ICX リクエストに対して使用する必要があります。これには秘密鍵、証明書およびトラスト・ポイントが含まれます。Walletの作成や挿入には Oracle Wallet Managerを使用します。これはWalletを定義できるグラフィカル・ユーザー・インタフェースです。Oracle Wallet Managerについては、『Oracle Application Serverセキュリティ・ガイド』を参照してください。

Walletはオペレーティング・システムのフラット・ファイルとして保管できます。Walletにアクセスするには、Walletリソース・ロケータ(WRL)を指定します。

ICX リクエストの方式が、httpではなく httpsであることを確認してください。方式はWRB_ICXcreateRequest() の urlパラメータで設定します。

構文構文構文構文WAPIReturnCodeWRB_ICXsetWalletInfo(

dvoid *WRBCtx,dvoid *hRequest,text *walletLoc,text *password);

パラメータパラメータパラメータパラメータ

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRequest Walletを設定するリクエスト。これは、WRB_ICXcreateRequest()が返すハンドルです。

→ walletLoc WalletのWRL(Walletリソース・ロケータ )。WRLの説明は、次を参照してください。

→ password Walletのパスワード。

Inter-Cartridge Exchangeサービス API 4-19

Page 124: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_ICXsetWalletInfo()

WRL の構文の構文の構文の構文WRLの構文 :

<Wallet Type>:<Wallet Type Parameters>

■ Wallet Typeには、Walletがオペレーティング・システムのフラット・ファイルに保管されるように指定します。Wallet Typeの値は "file "です。

■ Wallet Type ParametersにはWalletの場所を指定します。フラット・ファイルに格納されているWalletの場合、Wallet Type ParametersはWalletのフルパスになります。

次のWRLの例では、Walletが /home/walletsディレクトリに保管されるように指定しています。

file:/home/wallets

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

WRB_ICXcreateRequest() で指定された方式が "https"ではなく "http"の場合、関数はWRB_FAILを返します。

4-20 Oracle Application Server C API リファレンス

Page 125: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Loggerサービ

5

Logger サービスサービスサービスサービス API

Loggerサービスを使用することにより、ローカルのファイル・システムまたはデータベースにログ情報を出力することができます。これらの情報の中には、カートリッジの特定のインスタンスに関連するものがあります。Log Analyzerを使用して、このデータから統計情報を取り出すことができます。

トピックトピックトピックトピック■ ロギングのガイドライン

■ 詳細レベル

■ メッセージ・フォーマット

API 関数関数関数関数■ WRB_LOGopen() -ファイルまたはデータベース接続をオープンする。

■ WRB_LOGwriteMessage() - 記憶領域にシステム・メッセージを書き込む。

■ WRB_LOGwriteAttribute() - 記憶領域にクライアント定義の属性を書き込む。

■ WRB_LOGclose() -ファイルまたはデータベース接続をクローズする。

WRBLogMessage() は、Oracle WebServerのバージョン 2.0でサポートされている関数です。Oracle Web Application Serverバージョン 3.0以降では、かわりにWRB_LOGwriteMessage() を使用してください。

ロギングのガイドラインロギングのガイドラインロギングのガイドラインロギングのガイドラインファイル・システムにログを出力する際のログ・ファイルは、デフォルトで wrb.logファイルになります。カートリッジ固有のログ・ファイルも設定できますが、ログ・ファイルを 1つにしておく方がデバッグやログの分析が簡単です。

ログ・ファイルは次のようなフォーマットになっています。

ス API 5-1

Page 126: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

詳細レベル

詳細レベル詳細レベル詳細レベル詳細レベル詳細レベルは 0から 15までの値です。数値が小さいほどより詳細なエラーを示します。Loggerは指定されたレベルより下の詳細レベルのメッセージをすべてログに出力します。たとえば、詳細レベルが 5に設定されている場合は、詳細レベルが 0から 4までのメッセージが出力されます。

すべてのカートリッジの最低レベルのロギングでは、すべてのエラー(詳細レベル <= 3)が記録されます。ただし、すべての警告についても同様にログに出力することをお薦めします(詳細レベル < 6)。

カートリッジの開発者は、必ず次の表にリストされた詳細レベルのガイドラインに従って一貫性のあるログ出力を行うようにします。

日付日付日付日付 時間時間時間時間マイクロマイクロマイクロマイクロ秒秒秒秒 マシン名マシン名マシン名マシン名 コンポーネントコンポーネントコンポーネントコンポーネント

プロセスプロセスプロセスプロセスID

詳細詳細詳細詳細レベルレベルレベルレベル マスクマスクマスクマスク メッセージメッセージメッセージメッセージ

01-14-97 16:33:21 123 pluto LM 12050 7 0x1000 Log Module has been initialized

表表表表 5-1 詳細レベル詳細レベル詳細レベル詳細レベル

意味意味意味意味詳細詳細詳細詳細レベルレベルレベルレベル 推奨する使用方法推奨する使用方法推奨する使用方法推奨する使用方法

致命的エラー(メモリー・エラーなど)

0 致命的なエラーが発生した場合は 0。

軽度のエラー(致命的ではない入出力エラーなど)

1 ファイルまたはデータベースへの書込みに失敗した場合は 1。

2 (ユーザー定義)

3 (ユーザー定義)

警告(ファイルまたは設定セクションが見つからない場合など)

4 ファイルまたはディレクトリが存在しない、設定ファイルのセクションが欠落している、などの設定エラーが発生した場合は 4。

5 (ユーザー定義)

6 (ユーザー定義)

5-2 Oracle Application Server C API リファレンス

Page 127: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

メッセージ・フォーマット

メッセージ・フォーマットメッセージ・フォーマットメッセージ・フォーマットメッセージ・フォーマットシステム管理者がログ・ファイルを読んでエラーを診断しやすくするために、この項でリストされているメッセージ・フォーマットを使用することをお薦めします。2つの異なるフォーマットが存在します。1つはエラーと警告のメッセージで、もう 1つはトレースとデバッグのメッセージです。

エラーと警告メッセージのフォーマットエラーと警告メッセージのフォーマットエラーと警告メッセージのフォーマットエラーと警告メッセージのフォーマットエラーと警告のメッセージ(詳細レベル <= 6)には、次のフォーマットが使用されます。

productName –msgNumber: message

msgNumberはメッセージ・ファイルの ORACLE番号です。メッセージが自動的に生成される場合(Javaカートリッジなど)、メッセージ番号も生成されます。

例 :

OWS-05101: Agent execution failed due to Oracle error 6564

トレース(リクエストの実行など)

7 プロセス・イベント(プロセスの初期化、リロード、終了段階など)をトレースする場合は 7。

8 スレッドの初期化や終了段階などのスレッド・イベントのトレースを行う場合は 8。

9 リクエスト・イベント(リクエストを受信した場合など)をトレースする場合は 9。

10 リクエスト実行中に発生するメッセージの場合は 10。

11 リクエスト認証中に発生するメッセージの場合は 11。

12 (ユーザー定義)

デバッグ(変数のロギングなど)

13 変数のデバッグを出力する場合は 13。

14 (ユーザー定義)

15 (ユーザー定義)

表表表表 5-1 詳細レベル詳細レベル詳細レベル詳細レベル

意味意味意味意味詳細詳細詳細詳細レベルレベルレベルレベル 推奨する使用方法推奨する使用方法推奨する使用方法推奨する使用方法

Loggerサービス API 5-3

Page 128: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

メッセージ・フォーマット

トレースとデバッグ・メッセージのフォーマットトレースとデバッグ・メッセージのフォーマットトレースとデバッグ・メッセージのフォーマットトレースとデバッグ・メッセージのフォーマットトレースとデバッグのメッセージ(詳細レベル >= 6)には、次のフォーマットが使用されます。

########### message

製品名とメッセージ番号のフィールドは含まれません。かわりに、メッセージの先頭に 11個のスペースが付加されます。

例 :

###########VPM has been initialized

5-4 Oracle Application Server C API リファレンス

Page 129: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGopen()

WRB_LOGopen()

ファイルまたはデータベース接続をオープンします。

構文構文構文構文WAPIReturnCodeWRB_LOGopen(

dvoid *WRBCtx,ub4 *logHdl,WRBLogType type,WRBLogDestType dest,text *filename);

パラメータパラメータパラメータパラメータ

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

← logHdl 接続先がファイルまたはデータベースのどちらであるかを示す出力パラメータ。この値は他のロギング関数で使用します。

→ type ロギングのタイプ(メッセージまたは属性):

■ WRB_LOGwriteMessage()を使用してログにメッセージを書き込む場合は、WRBLogSysMsgを指定します。

■ WRB_LOGwriteAttribute()を使用してログに属性を書き込む場合は、WRBLogClientDefAttrib を指定します。

Loggerサービス API 5-5

Page 130: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGopen()

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_LOGclose() 、WRB_LOGwriteMessage() 、WRB_LOGwriteAttribute()

→ dest ログをファイルまたはデータベースのどちらに記録するかを示す値。使用できる値は次のとおりです。

■ WRBLogDestDefault - 記録先が wrb.app ファイルで指定されることを示します。ログの記録先はこのファイルのlogger_logsys_desttype とlogger_logattrib_desttype 属性で示されます。これらの属性の有効な値は、ファイル・システムの場合は "FS"、データベースの場合は "DB" です。

これらの属性は、wrb.appファイルのカートリッジ固有のセクションまたは汎用セクションのいずれかで指定できます。カートリッジ固有のセクションの名前は[SYSTEM_CARTRIDGENAME] で、汎用セクションの名前は[LOGGER]です。カートリッジ固有のセクションにある属性の方が優先されます。

■ WRBLogDestDb - ログの記録先がデータベースであることを示します。

■ WRBLogDestFs - ログの記録先がファイル・システムであることを示します。

→ filename ファイルにログを出力する場合はファイル名。データベースの場合はNULL 値になります。

5-6 Oracle Application Server C API リファレンス

Page 131: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGwriteMessage()

WRB_LOGwriteMessage()

logHdlで指定した記憶領域にシステム・メッセージを書き込みます。

構文構文構文構文WAPIReturnCodeWRB_LOGwriteMessage(

dvoid *WRBCtx,ub4 logHdl,text *component,text *msg,sb4 severity);

パラメータパラメータパラメータパラメータ

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ logHdl WRB_LOGopen()関数コールから返される logHdl値。

→ component カートリッジの種類を示すテキストによる説明("java"など)。

→ msg ログに出力するテキスト。メッセージ長の最大値は 2,000バイトです。バッククォート(' )がデリミタとして使用される点に注意してください。メッセージの中にこの文字を含める場合は、円記号(¥' )を付けて無効にする必要があります。

→ severity メッセージの詳細レベル。enum名(下記参照)の 1つを使用してメッセージの詳細レベルを指定するか、または整数値を直接入力できます。

Loggerサービス API 5-7

Page 132: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGwriteMessage()

詳細レベルの詳細レベルの詳細レベルの詳細レベルの enum 名名名名

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_LOGopen()、WRB_LOGclose() 、WRB_LOGwriteAttribute()

表表表表 5-2 詳細レベルの詳細レベルの詳細レベルの詳細レベルの enum 名名名名

詳細レベル詳細レベル詳細レベル詳細レベル enum 名名名名

0 WRBLogSevFatal

1 WRBLogSevErr

4 WRBLogSevWarn

7 WRBLogSevTraItr

8 WRBLogSevAe

11 WRBLogSevDebug

5-8 Oracle Application Server C API リファレンス

Page 133: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGwriteAttribute()

WRB_LOGwriteAttribute()

logHdlで指定した記憶領域にクライアント定義の属性を書き込みます。たとえば、後の分析のために指定した間隔でキューの長さを読み取り、カートリッジの動きをモニターできます。

構文構文構文構文WAPIReturnCodeWRB_LOGwriteAttribute(

dvoid *WRBCtx,ub4 logHdl,text *component,text *name,text *value);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_LOGopen()、WRB_LOGclose() 、WRB_LOGwriteMessage()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ logHdl WRB_LOGopen()関数コールから返される logHdl値。

→ component カートリッジの種類を示すテキストによる説明("java"など)。

→ name ロギングする特定の属性を示すテキスト。

→ value 名前を付けた属性を修飾する追加のテキスト。

Loggerサービス API 5-9

Page 134: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_LOGclose()

WRB_LOGclose()

logHdlで指定したファイルまたはデータベース接続をクローズします。

構文構文構文構文WAPIReturnCodeWRB_LOGclose(

dvoid *WRBCtx,ub4 logHdl);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_LOGopen()、WRB_LOGwriteMessage() 、WRB_LOGwriteAttribute()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ logHdl これは、WRB_LOGopen()関数コールから返される logHdl値です。

5-10 Oracle Application Server C API リファレンス

Page 135: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

トランザクション・サービ

6

トランザクション・サービストランザクション・サービストランザクション・サービストランザクション・サービス API

関数関数関数関数■ tx_annotate_path() - トランザクション・コンテキストを仮想パスに追加する。

■ tx_annotate_url() - トランザクション・コンテキストを URLに追加する。

■ tx_begin() - トランザクションを開始する。

■ tx_close() - リソース・マネージャとの接続をクローズする。

■ tx_commit() - 現行のトランザクションをコミットする。

■ tx_info() - トランザクションの情報を取得する。

■ tx_open() - リソース・マネージャとの接続をオープンする。

■ tx_reg() - オープンするリソース・マネージャを登録する。

■ tx_resume() - 保留のトランザクションを再開する。

■ tx_rollback() - 現行のトランザクションをロールバックする。

■ tx_set_transaction_property() - カートリッジが状態を保持するまたは保持しないように設定する。

■ tx_set_transaction_timeout() - トランザクションのタイムアウトを設定する。

■ tx_suspend() - 現行のトランザクションを保留にする。

データ型データ型データ型データ型■ TXINFO構造体 - 現行のトランザクションの情報を含む構造体

注意注意注意注意 : この APIは、Oracle Application Serverの Enterprise Editionでのみ使用可能です。

ス API 6-1

Page 136: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_annotate_path()

tx_annotate_path()

指定したカートリッジの仮想パスに現行のトランザクション・コンテキストを追加して、その結果を要求元に書き出します。

この関数を使用して、現行のトランザクション ID を Cookieの形式で要求元に送信できます。クライアントは、このトランザクション ID をこれ以降のリクエストと一緒に送信することで、そのリクエストをどのトランザクションに適用するかを指定できます。

たとえば、"mycart"というカートリッジを作成し、exec関数が "begin"、"update"、"commit"および "rollback"のリクエストをサポートする場合、その exec関数は、次の方法でtx_annotate_path()をコールできます。

ユーザー定義のリクエストがこれ以外に存在しない場合、"begin"および "update"の処理で、次のシングル・コールを使用できます。

tx_annotate_path((text *)"/mycart/");

このコールは、クライアントがトランザクション ID を送信する際、すべてのリクエストに対して mycart で始まる仮想パスを使用することを示します。

Cookieを受け付けない、または受け付けることができないクライアントをカートリッジでサポートする場合は、かわりに tx_annotate_url() を使用します。

構文構文構文構文inttx_annotate_path ( text *path );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_ERROR

関連項目関連項目関連項目関連項目tx_annotate_url()

→ path トランザクション・コンテキストに付加される仮想パス。現行トランザクションの一部として扱われる後続のリクエストの仮想パスまたはパス接頭辞を指定します。

6-2 Oracle Application Server C API リファレンス

Page 137: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_annotate_url()

tx_annotate_url()

指定した URLに現行のトランザクション・コンテキストと指定した問合せ文字列データを追加し、クライアントに結果を返します。

Cookieを受け付けない、または受け付けることができないクライアントをカートリッジでサポートする場合は、tx_annotate_path() のかわりにこの関数を使用できます。これを行うには、現行トランザクションの一部として扱われる後続のリクエストに対して、URLへの明示的なリンクを含んだレスポンスを生成する必要があります。

そのためには、リクエストに対して HTML レスポンスを生成するコードのセクションからこの関数をコールする必要があります。

構文構文構文構文inttx_annotate_url (

text *url,text **annotatedUrl);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_ERROR

例例例例text *annotatedUrl;/* output headers... */

tx_annotate_url("/mycart/update", &annotatedUrl);WRB_printf(WRBCtx,

(text *)"<FORM ACTION=¥"%s¥" METHOD=¥"POST¥">¥n", annotatedUrl);

→ url トランザクション・コンテキストを追加する URL。

← annotatedUrl 関数が注釈付きの URLへのポインタを戻す場所。使用後は、このバッファを解放する必要があります。

トランザクション・サービス API 6-3

Page 138: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_annotate_url()

/* output body of form */WRB_printf(WRBCtx,

(text *)"<INPUT TYPE=¥"submit¥" NAME=¥"update¥" ");

/* output the rest of the HTML response */

関連項目関連項目関連項目関連項目tx_annotate_path()

6-4 Oracle Application Server C API リファレンス

Page 139: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_begin()

tx_begin()

グローバル・トランザクションの開始を設定します。オープンされたリソース・マネージャでこれ以降実行されるすべての操作は、tx_commit() をコールしてトランザクションをコミットするか、tx_rollback() をコールしてトランザクションをロールバックするまでトランザクションの一部とみなされます。

tx_begin() をコールする前に tx_open() をコールして、1つ以上のリソース・マネージャに接続する必要があります。

構文構文構文構文inttx_begin( void );

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_PROTOCOL_ERROR - コール側のカートリッジは、すでにトランザクション・モードです。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_open() 、tx_commit() 、tx_rollback()

トランザクション・サービス API 6-5

Page 140: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_close()

tx_close()

tx_open() コールでオープンされたリソース・マネージャをクローズします。リソース・マネージャでトランザクションの処理が終了すると、この関数をコールしてリソース・マネージャとの接続を切断できます。tx_close() をコールする前に tx_commit() またはtx_rollback() をコールして、すべてのアクティブ・トランザクションを終了する必要があります。

構文構文構文構文inttx_close( void );

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR - 1つ以上のリソース・マネージャをクローズする際の一時的エラー。 TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_open()

6-6 Oracle Application Server C API リファレンス

Page 141: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_commit()

tx_commit()

現行のトランザクションをコミットし、現行のトランザクションを終了します。

構文構文構文構文inttx_commit( void );

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ROLLBACK - コミットに失敗しました。ロールバックの処理中です。TX_MIXED -- コミットは部分的に成功しました。部分的なロールバックの処理中です。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_begin() 、tx_rollback()

トランザクション・サービス API 6-7

Page 142: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_info()

tx_info()

現行のトランザクションに関する次の情報を、渡された TXINFO構造体に保管します。

■ トランザクション ID —トランザクションを識別するための一意の数値。

■ トランザクションのタイムアウト—トランザクションが自動的にロールバック対象として設定されるまでのアイドル時間(秒)。

■ トランザクションの状態。次のいずれかになります。

– アクティブ

– 非アクティブ

– タイムアウトのため、ロールバック対象として設定済み

TXINFO構造体はユーザーが割り当て、そのポインタを関数に渡す必要があります。詳細は、「TXINFO構造体」を参照してください。

構文構文構文構文inttx_info( TXINFO *info );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値0 - カートリッジはトランザクション・モードではありません。1 - カートリッジはトランザクション・モードです。TX_PROTOCOL_ERROR - コンテキスト外で関数がコールされました。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

← info 要求した情報を保管するために割り当てた TXINFO構造体へのポインタ。この関数は、TXINFO構造体へのメモリー割当てを行いません。

6-8 Oracle Application Server C API リファレンス

Page 143: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_open()

tx_open()

この関数は、コール側スレッドの開始後に実行された tx_reg() 、または最後に実行されたtx_close() のうち、いずれか新しい方のコールによって登録されたすべてのリソース・マネージャをオープンして接続します。

tx_open() の前に tx_reg() をコールして、最低 1つ以上のリソース・マネージャを登録する必要があります。また、トランザクションを開始するために tx_begin() コールの前に tx_open() をコールする必要があります。

構文構文構文構文inttx_open( void );

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - カートリッジはトランザクションの使用が可能ではありません。TX_FAIL - 致命的エラー。カートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_close() 、tx_begin()

トランザクション・サービス API 6-9

Page 144: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_reg()

tx_reg()

Database Access Descriptor (DAD)を指定して、これ以降の tx_open() コールでオープンされるリソース・マネージャを登録します。

tx_open() コールでオープンする前に、tx_reg() をコールしてリソース・マネージャを登録する必要があります。リソース・マネージャを指定するには、Database Access Descriptor(DAD) の名前を渡す必要があります。

複数のリソース・マネージャを登録するには tx_reg() を繰り返しコールします。後続のtx_open() コールでは登録したすべてのリソース・マネージャがオープンされます。

構文構文構文構文inttx_reg( text *dad );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR - 指定された DAD は設定されていません。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_open()

→ dad Database Access Descriptor (DAD)の名前。

6-10 Oracle Application Server C API リファレンス

Page 145: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_resume()

tx_resume()

保留中のトランザクションを再開します。トランザクションを保留にするには、tx_suspend()をコールします。

ユーザー・スレッドからはトランザクションを再開できないため注意してください。

構文構文構文構文inttx_resume( void *txctx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR - トランザクションの再開中にエラーが発生しました。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_suspend()

→ txctx 再開するトランザクションを指定するトランザクション・コンテキスト。この値は tx_suspend()で返されたものです。

トランザクション・サービス API 6-11

Page 146: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_rollback()

tx_rollback()

現行のトランザクションをロールバックして終了します。トランザクション内で SQLエラーが発生した場合は、必ず tx_rollback() をコールする必要があります。

構文構文構文構文inttx_rollback( void );

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - カートリッジは、トランザクションの使用が可能ではありません。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_begin() 、tx_commit()

6-12 Oracle Application Server C API リファレンス

Page 147: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_set_transaction_property()

tx_set_transaction_property()

トランザクションを利用するカートリッジが状態を保持するか保持しないかを指定します。

状態を保持するカートリッジでは、同じカートリッジ・インスタンスが、会話型トランザクション(複数のリクエストにまたがるトランザクション)の実行中に同じクライアントからの複数のリクエストを処理します。

状態を保持しないカートリッジ(デフォルト)では、どのカートリッジ・インスタンスもリクエストを処理できます。

この関数は tx_open() をコールする前にコールする必要があります。

構文構文構文構文inttx_set_transaction_property(TRANSACTION_PROPERTY property);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR -プロパティ設定中にエラーが発生しました。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_open()

→ property トランザクションを利用するカートリッジが状態を保持するか保持しないかを示します。propertyには、TX_STATELESS(デフォルト)かTX_STATEFULのいずれかを設定します。

トランザクション・サービス API 6-13

Page 148: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_set_transaction_timeout()

tx_set_transaction_timeout()

トランザクションが自動的にロールバック対象として設定されるまでの時間を指定します。トランザクションは、この時間内に完了される必要があります。この関数は tx_open() をコールする前にコールする必要があります。

構文構文構文構文inttx_set_transaction_timeout (TRANSACTION_TIMEOUT timeout);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR - タイムアウトの設定中にエラーが発生しました。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_open()

→ timeout トランザクションを完了する必要がある時間(秒)。

6-14 Oracle Application Server C API リファレンス

Page 149: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

tx_suspend()

tx_suspend()

現行のトランザクションを保留にします。トランザクションを再開するには tx_resume()をコールします。

構文構文構文構文inttx_suspend( void **txctx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値TX_OKTX_OUTSIDE - コール側のカートリッジは、トランザクションの使用が可能ではありません。TX_ERROR - トランザクションの保留中にエラーが発生しました。TX_FAIL - 致命的エラー。コール側のカートリッジは、WRB_ABORTを返す必要があります。

関連項目関連項目関連項目関連項目tx_resume()

← txctx 非透過のトランザクション・コンテキスト。この値を使用してトランザクションを再開します。

トランザクション・サービス API 6-15

Page 150: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

TXINFO構造体

TXINFO構造体構造体構造体構造体

この構造体(tx.h で定義)はトランザクションに関する情報をエンコーディングしたものです。tx_info() コールによりこの構造体に値が入力されます。

struct tx_info_t { XID xid; COMMIT_RETURN when_return; TRANSACTION_CONTROL transaction_control; TRANSACTION_TIMEOUT transaction_timeout; TRANSACTION_STATE transaction_state;};typedef struct tx_info_t TXINFO;

構造体のフィールドの意味は次のとおりです。

表表表表 6-1 TXINFO構造体のフィールド構造体のフィールド構造体のフィールド構造体のフィールド

フィールドフィールドフィールドフィールド 説明説明説明説明

xid トランザクションを識別する一意の数値。

when_return 未使用。

transaction_control 未使用。

transaction_timeout トランザクションが自動的にロールバック対象として設定されるまでのアイドル時間(秒)。

transaction_state 現行のトランザクションの状態。次のいずれかになります。

■ TX_ACTIVE - トランザクションがアクティブで、コミット可能であることを示します。

■ TX_INACTIVE - トランザクションが保留され、現在コミットやロールバックが不可能であることを示します。

■ TX_TIMEOUT_ROLLBACK_ONLY - トランザクションがタイムアウトとなり、ロールバック対象としてマークされたことを示します。トランザクションはコミットされません。

6-16 Oracle Application Server C API リファレンス

Page 151: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

コンテンツ・サービ

7

コンテンツ・サービスコンテンツ・サービスコンテンツ・サービスコンテンツ・サービス API

コンテンツ・サービス APIを使用することにより、UNIX の標準的なファイル・システムにアクセスするライブラリ関数に似た簡単なプログラミング・インタフェースを使用して、カートリッジからWebのコンテンツ・リポジトリにアクセスできます。

Oracle Application Server 4.0.6.2以前のバージョンをお使いの場合、コンテンツ・サービスAPIをアップグレードする必要があります。詳細は、『Oracle Application Server インストレーション・ガイド』の「前バージョンからの移行」の章を参照してください。

WRB コンテンツ・サービスコンテンツ・サービスコンテンツ・サービスコンテンツ・サービス API■ WRB_CNTopenRepository() - コンテンツ・リポジトリをオープンする。

■ WRB_CNTcloseRepository() - コンテンツ・リポジトリをクローズする。

■ WRB_CNTopenDocument() - コンテンツ・リポジトリのドキュメントをオープンする。

■ WRB_CNTcloseDocument() - ドキュメントをクローズする。

■ WRB_CNTdestroyDocument() - ドキュメントを削除する。

■ WRB_CNTgetAttributes() - ドキュメントの属性を取得する。

■ WRB_CNTsetAttributes() - ドキュメントの属性を設定する。

■ WRB_CNTreadDocument() - ドキュメントから読み込む。

■ WRB_CNTwriteDocument() - ドキュメントのローカル・コピーに書き込む。

■ WRB_CNTflushDocument() - オープンされているドキュメントへの変更を保存する。

■ WRB_CNTlistDocuments() - リポジトリ内のドキュメントの名前を返す。

注意注意注意注意 : コンテンツ・サービス APIは、Oracle Application ServerのEnterprise Editionでのみ使用可能です。スタンダード版では使用できません。

ス API 7-1

Page 152: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTopenRepository()

WRB_CNTopenRepository()

データベース内のコンテンツ・リポジトリへの接続を確立し、これ以降のコンテンツ・サービス関数に渡すリポジトリへのハンドルを返します。

リポジトリ内のドキュメントにアクセスするには、その前にリポジトリをオープンする必要があります。コンテンツ・リポジトリにアクセスするには、ows_standard_roleが付与されていることを確認してください。

構文構文構文構文dvoid*WRB_CNTopenRepository(

dvoid *WRBCtx,text *user,text *passwd,text *connectstr);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したリポジトリへのハンドル。失敗すると NULL を返します。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ user リポジトリへの接続に使用するユーザー名(データベースのユーザーID など)。

→ passwd 指定したユーザーのパスワード。

→ connectstr 接続文字列(SQL*NETV2接続文字列でもよい)、またはデータベースへの接続に使用される DAD。DAD を指定し、かつ userと passwdパラメータが NULL の場合、DAD のユーザー情報とパスワード情報が使用されます。パラメータが NULL でない場合は、DAD の情報のかわりにこれらのパラメータ値が使用されます。

ローカル・データベースが Oracle Application Serverと同じORACLE_HOMEディレクトリにインストールされている場合、このパラメータには NULL を指定します。

7-2 Oracle Application Server C API リファレンス

Page 153: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTopenRepository()

関連項目関連項目関連項目関連項目WRB_CNTcloseRepository() 、WRB_CNTopenDocument()

コンテンツ・サービス API 7-3

Page 154: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTcloseRepository()

WRB_CNTcloseRepository()

指定したリポジトリへの接続をクローズします。リポジトリへのアクセスが終了した後、この関数をコールします。

構文構文構文構文WAPIReturnCodeWRB_CNTcloseRepository(

dvoid *WRBCtx,dvoid *hRepository);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_CNTopenRepository()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRepository クローズするリポジトリへのハンドル。

7-4 Oracle Application Server C API リファレンス

Page 155: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTopenDocument()

WRB_CNTopenDocument()

指定したドキュメントをコンテンツ・リポジトリから検索し、そのハンドルを返します。このハンドルは、これ以降のコンテンツ・サービス関数コールで使用されます。

WRB_CNTreadDocument() またはWRB_CNTwriteDocument() をコールしてドキュメントにアクセスする前に、ドキュメントに対してこの関数をコールする必要があります。

構文構文構文構文dvoid*WRB_CNTopenDocument(

dvoid *WRBCtx,dvoid *hRepository,text *szDocName,ub2 mode);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したドキュメントへのハンドル。失敗すると NULL を返します。

関連項目関連項目関連項目関連項目WRB_CNTcloseDocument() 、WRB_CNTopenRepository() 、WRB_CNTreadDocument() 、WRB_CNTwriteDocument()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRepository ドキュメントを含むリポジトリへのハンドル。

→ szDocName ドキュメントの名前。

→ mode 読込みまたは書込みのどちらのモード(あるいはその両方)でドキュメントをオープンするか、またドキュメントが存在しない場合は作成するかどうかを指定します。次の値を使用できます。

WRBCS_CREATE - ドキュメントが存在しない場合は作成する。

WRBCS_READ - ドキュメントを読込みモードでオープンする。

WRBCS_WRITE - ドキュメントを書込みモードでオープンする。

コンテンツ・サービス API 7-5

Page 156: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTcloseDocument()

WRB_CNTcloseDocument()

コンテンツ・リポジトリ内の指定したドキュメントをクローズします。

ドキュメントへのアクセスを終了した後に、この関数をコールしてドキュメントをクローズします。WRB_CNTwriteDocument() をコールしてドキュメントのプライベート・コピーに行なった変更は、クローズする前に元のドキュメントに反映されます。

構文構文構文構文WAPIReturnCodeWRB_CNTcloseDocument(

dvoid *WRBCtx,dvoid *hDocument);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_CNTopenDocument()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument クローズするドキュメントへのハンドル。

7-6 Oracle Application Server C API リファレンス

Page 157: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTdestroyDocument()

WRB_CNTdestroyDocument()

指定したドキュメントをコンテンツ・リポジトリから削除します。

この関数は、ドキュメントをコンテンツ・リポジトリから永久に削除します。まず、WRB_CNTopenRepository() をコールして、破棄するドキュメントを含んだリポジトリへのハンドルを取得する必要があります。

構文構文構文構文WAPIReturnCodeWRB_CNTdestroyDocument(

dvoid *WRBCtx,dvoid *hRepository,text *szDocName);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_CNTopenRepository()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRepository 指定したドキュメントを削除するリポジトリへのハンドル。これは、WRB_CNTopenRepository() が返すハンドルです。

→ szDocName 削除するドキュメント名へのポインタ。

コンテンツ・サービス API 7-7

Page 158: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTgetAttributes()

WRB_CNTgetAttributes()

コンテンツ・リポジトリ内の指定したドキュメントの情報を返します。

ドキュメントに対してこの関数をコールする前にWRB_CNTopenDocument() をコールしてドキュメントをオープンする必要があります。

構文構文構文構文WAPIReturnCodeWRB_CNTgetAttributes(

dvoid *WRBCtx,dvoid *hDocument,WRBpBlock hAttributes);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

ドキュメントの属性ドキュメントの属性ドキュメントの属性ドキュメントの属性次の表は、hAttributesパラメータで返されるドキュメント属性の一覧です。次の表で参照している属性の型は、「パラメータ・ブロック・エレメント構造体」に定義されています。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument ドキュメントへのハンドル。これは、WRB_CNTopenDocument() が返すハンドルです。

← hAttributes パラメータ・ブロックへのハンドル。事前にWRB_createPBlock()をコールして、パラメータ・ブロックを割り当てる必要があります。

7-8 Oracle Application Server C API リファレンス

Page 159: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTgetAttributes()

表表表表 7-1 ドキュメントの属性ドキュメントの属性ドキュメントの属性ドキュメントの属性

属性名属性名属性名属性名 属性の型属性の型属性の型属性の型 説明説明説明説明

author WRBPT_STRING ドキュメント作成者の名前。

method WRBPT_STRING ドキュメントの保存場所。データベースまたはファイル・システム。

content_type WRBPT_STRING ドキュメントの MIME タイプとサブタイプ。

methodinfo WRBPT_STRING ファイル・システムに格納されているドキュメントのファイル・システムのパス。データベースに格納されているドキュメントの場合、この属性は NULL です。

creation_date WRBPT_DATE ドキュメントの作成日付。

name WRBPT_STRING ドキュメントの名前。

description WRBPT_STRING ドキュメントの内容を説明する文字列。この文字列は 2000バイト以下にする必要があります。

encoding WRBPT_STRING ドキュメントのエンコーディング(compressや gzipなど)。

owner WRBPT_STRING ドキュメント所有者のユーザー ID。

expires WRBPT_DATE ドキュメントの保存期限。

path WRBPT_STRING コンテンツ・リポジトリ内のドキュメントのフルパスで、folder属性と name属性を結合したもの。

folder WRBPT_STRING ドキュメントが含まれるコンテンツ・リポジトリ・フォルダ。

title WRBPT_STRING ドキュメントの HTML タイトル(存在する場合)。

language WRBPT_STRING ドキュメントの使用言語。

type WRBPT_STRING ドキュメントのフォーマット。テキストまたはバイナリ。

last_modified WRBPT_DATE ドキュメントが最後に変更された日付と時刻。

コンテンツ・サービス API 7-9

Page 160: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTgetAttributes()

例例例例WRBpBlockElem *attrib_elem;sb4 num_attributes;WAPIReturnCode ret;int i;

ret = WRB_CNTgetAttributes(WRBCtx, hDocument, hAttributes);

if (ret == WRB_SUCCESS) { num_attributes = WRB_numPBElem(WRBCtx, hAttributes); for (i = 0; i < num_attributes; i++) { attrib_elem = WRB_walkPBlock(WRBCtx, hAttributes, i); /* do something with attribute */ }}

関連項目関連項目関連項目関連項目WRB_CNTsetAttributes() 、WRB_CNTopenDocument()

7-10 Oracle Application Server C API リファレンス

Page 161: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTsetAttributes()

WRB_CNTsetAttributes()

コンテンツ・リポジトリ内の指定したドキュメントの属性を設定します。システム定義の属性の説明はWRB_CNTgetAttributes() を参照してください。また、独自の属性を作成することも可能です。

ドキュメントに対してこの関数をコールする前にWRB_CNTopenDocument() をコールしてドキュメントをオープンする必要があります。

構文構文構文構文WAPIReturnCodeWRB_CNTsetAttributes(

dvoid *WRBCtx,dvoid *hDocument,WRBpBlock hAttributes);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_CNTgetAttributes() 、WRB_CNTopenDocument()

読込み専用の属性読込み専用の属性読込み専用の属性読込み専用の属性作成日、最終変更、所有者、パス

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument ドキュメントへのハンドル。これは、WRB_CNTopenDocument() が返すハンドルです。

→ hAttributes 設定するドキュメント属性を含むパラメータ・ブロックへのハンドル。事前にWRB_createPBlock() をコールして、パラメータ・ブロックを割り当てる必要があります。

コンテンツ・サービス API 7-11

Page 162: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTreadDocument()

WRB_CNTreadDocument()

コンテンツ・リポジトリ内のドキュメントの現在位置から、指定したバイト数をコール側が確保したバッファに読み込みます。読み込むドキュメントよりもバッファが小さい場合、この関数を繰り返しコールする必要があります。

ドキュメントに対してこの関数をコールする前にWRB_CNTopenDocument() をコールしてドキュメントをオープンする必要があります。

構文構文構文構文sb4 WRB_CNTreadDocument(

dvoid *WRBCtx,dvoid *hDocument,ub1 *buffer,sb4 buffersz);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したドキュメントから正常に読み込んだバイト数。ドキュメントの最後に到達すると、0(ゼロ)が返されます。

関連項目関連項目関連項目関連項目WRB_CNTwriteDocument() 、WRB_CNTopenDocument()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument 読み込むドキュメントへのハンドル。これは、WRB_CNTopenDocument() が返すハンドルです。

← buffer 読み込んだデータを保管するバッファへのハンドル。このバッファ領域は、ユーザーが確保する必要があります。

→ buffersz バッファのサイズ。

7-12 Oracle Application Server C API リファレンス

Page 163: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTwriteDocument()

WRB_CNTwriteDocument()

ドキュメントの現在位置に指定したバッファの内容を書き込みます。指定したサイズよりもバッファが大きい場合、この関数を繰り返しコールする必要があります。

この関数をコールしてドキュメントを変更すると、自分専用に用意されたドキュメントのコピーに対して変更が行われます。変更を元のドキュメントに反映するには、WRB_CNTflushDocument() をコールするか、またはWRB_CNTcloseDocument() をコールしてドキュメントをクローズする必要があります。

ドキュメントに対してWRB_CNTwriteDocument() をコールする前に、WRB_CNTopenDocument() をコールしてドキュメントをオープンする必要があります。

構文構文構文構文sb4WRB_CNTwriteDocument(

dvoid *WRBCtx,dvoid *hDocument,ub1 *buffer,sb4 buffersz);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値指定したドキュメントに正常に書き込んだバイト数。

関連項目関連項目関連項目関連項目WRB_CNTreadDocument() 、WRB_CNTopenDocument()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument ドキュメントへのハンドル。これは、WRB_CNTopenDocument() が返すハンドルです。

→ buffer 書き出されるデータが保管されているバッファへのポインタ。

→ buffersz 書き込まれるバイト数。

コンテンツ・サービス API 7-13

Page 164: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTflushDocument()

WRB_CNTflushDocument()

リポジトリに保存されている元のドキュメントに、バッファ内の変更を反映します。

WRB_CNTwriteDocument() をコールすると、コンテンツ・リポジトリにあるドキュメントに対する自分専用のコピーが変更されます。変更を元のドキュメントに反映するには、WRB_CNTflushDocument() をコールする必要があります。ドキュメントを変更したら、クローズする前にWRB_CNTcloseDocument() をコールしてバッファをフラッシュできます。

構文構文構文構文WAPIReturnCodeWRB_CNTflushDocument(

dvoid *WRBCtx,dvoid *hDocument);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WAPIReturnCode 型の値。

関連項目関連項目関連項目関連項目WRB_CNTwriteDocument() 、WRB_CNTopenDocument()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hDocument 同期化するドキュメントへのハンドル。これは、WRB_CNTopenDocument() が返すハンドルです。

7-14 Oracle Application Server C API リファレンス

Page 165: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTlistDocuments()

WRB_CNTlistDocuments()

リポジトリ内のドキュメントの名前をリストします。

構文構文構文構文sb4WRB_CNTlistDocuments(

dvoid *WRBCtx,dvoid *hRepositoryWRBpBlock *docList);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値ドキュメントの数。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ hRepository リポジトリへのハンドル。これは、WRB_CNTopenRepository() が返すハンドルです。

← docList ドキュメントの名前が入るパラメータ・ブロック。名前フィールドにドキュメント名が入り、値フィールドは NULL になります。

コンテンツ・サービス API 7-15

Page 166: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_CNTlistDocuments()

7-16 Oracle Application Server C API リファレンス

Page 167: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDB

8

WDBC API

データ型データ型データ型データ型■ WDBCAPIReturnCode

関数関数関数関数■ WDBCInit()

■ WDBCTerm()

■ WDBCGetDADCtx()

■ WDBCDestroyDADCtx()

■ WDBCAddSession()

■ WDBCAddSessionFromDAD()

■ WDBCRemoveSession()

■ WDBCInitRequestEnv()

■ WDBCTermRequestEnv()

■ WDBCGetPlsqlProcName()

■ WDBCGetQuery()

■ WDBCGetCGIEnv()

■ WDBCExecPlsqlProc()

■ WDBCFetchHTPBuffer()

注意注意注意注意 : この APIは、Oracle Application Serverの Enterprise Editionでのみ使用可能です。

C API 8-1

Page 168: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

■ WDBCCommitState()

■ WDBCRollbackState()

■ WDBCGetLastError()

■ WDBCVersion()

8-2 Oracle Application Server C API リファレンス

Page 169: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCAPIReturnCode

WDBCAPIReturnCodeこの型は多くのWDBC APIの戻り値として使用されます。次の値のいずれかになります。

表表表表 8-1 WDBCAPIReturnCode の値の値の値の値

値値値値 説明説明説明説明

WDBCAPI_SUCCESS APIは正常に実行されました。

WDBCAPI_FAIL APIは正常に完了しませんでした。

WDBCAPI_LOWMEM プロセスはメモリー不足です。

WDBCAPI_FATAL 致命的エラーが発生しました。

WDBC API 8-3

Page 170: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCInit()

WDBCInit()

WDBCサービスを初期化します。この関数は新しいWDBCコンテキストを作成し、それを初期化します。このコンテキストは、プロセス内で作成されるオブジェクトすべてに継承されます。ほとんどのWDBC APIについて、利用時にWDBCコンテキストを渡す必要があります。

この関数は各プロセスごとに必要で、プロセスの起動時に 1回だけコールする必要があります。

構文構文構文構文WDBCCtx *WDBCInit();

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値WDBCコンテキスト。エラーが発生すると NULL になります。

関連項目関連項目関連項目関連項目WDBCTerm()

8-4 Oracle Application Server C API リファレンス

Page 171: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCTerm()

WDBCTerm()

WDBCサービスを停止します。コンテキストをクリーン・アップし、既存のデータベース接続をすべて切断します。

この関数は各プロセスごとに必要です。プロセスが終了する前にこれをコールする必要があります。

構文構文構文構文WDBCAPIReturnCodeWDBCTerm( WDBCCtx *wdbcCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCInit()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

WDBC API 8-5

Page 172: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCGetDADCtx()

WDBCGetDADCtx()

指定された DAD(database access descriptor)の DAD コンテキストを返します。

構文構文構文構文WDBCDADCtxWDBCGetDADCtx( text *dadName );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値DAD コンテキスト。エラーが発生すると、NULL になります。

関連項目関連項目関連項目関連項目WDBCDestroyDADCtx()

→ dadName コンテキストを取得する対象となる DAD。

8-6 Oracle Application Server C API リファレンス

Page 173: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCDestroyDADCtx()

WDBCDestroyDADCtx()

指定された DAD コンテキストを破棄します。

構文構文構文構文voidWDBCDestroyDADCtx(WDBCDADCtx wdbcDADCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値なし

関連項目関連項目関連項目関連項目WDBCGetDADCtx()

→ wdbcDADCtx 破棄する DAD コンテキスト。

WDBC API 8-7

Page 174: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCAddSession()

WDBCAddSession()

指定されたユーザー名で、指定されたデータベースに新しいセッションを開始します。

カートリッジに OCIセッション・オブジェクトを追加します。

空いているセッションがない場合、または指定されたユーザー名と接続情報に利用可能なセッションがない場合、この関数は新しいセッション・オブジェクトを作成します。それ以外の場合は、接続プール内の空いているセッション・オブジェクトを使用します。

構文構文構文構文WDBCSession *WDBCAddSession(

WDBCCtx *wdbcCtx,text *username,text *password,text *connectString,text *oracleSID);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値セッションのハンドル。セッションを作成できなかった場合は NULL になります。

関連項目関連項目関連項目関連項目WDBCAddSessionFromDAD()、WDBCRemoveSession()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ username セッションに使用するユーザー名。

→ password ユーザー名に対応するパスワード。

→ connectString リモートの Oracleデータベースの接続文字列。

→ oracleSID ローカルの Oracleデータベースの Oracle SID。

connectStringと oracleSIDの両方が指定されている場合は、connectStringが使用されます。

connectStringと oracleSIDの両方が NULLの場合は、ローカル・サーバーへの接続が作成されます。ローカル・サーバーは、ORACLE_SID環境変数で指定されます。

8-8 Oracle Application Server C API リファレンス

Page 175: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCAddSessionFromDAD()

WDBCAddSessionFromDAD()

DAD で指定されたデータベースに新しいセッションを開始します。DAD にはユーザー名とパスワード情報が入っている必要があります。

空いているセッションがない場合や、指定された DAD に利用可能なセッションがない場合、この関数は新しいセッション・オブジェクトを作成します。それ以外の場合は、接続プール内の空いているセッション・オブジェクトを使用します。

構文構文構文構文WDBCSession *WDBCAddSession(

WDBCCtx *wdbcCtx,WDBCDADCtx wdbcDADCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値セッションのハンドル。セッションを作成できなかった場合は NULL になります。

関連項目関連項目関連項目関連項目WDBCAddSession()、WDBCGetDADCtx()、WDBCRemoveSession()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcDADCtx DAD コンテキスト。これは、WDBCGetDADCtx()からの戻り値です。

WDBC API 8-9

Page 176: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCRemoveSession()

WDBCRemoveSession()

指定された OCIセッション・オブジェクトをカートリッジから削除し、接続プールに返します。

構文構文構文構文WDBCAPIReturnCodeWDBCRemoveSession(

WDBCCtx *wdbcCtx,WDBCSession *wdbcSession);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCAddSession()、WDBCAddSessionFromDAD()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcSession 削除するセッション。

8-10 Oracle Application Server C API リファレンス

Page 177: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCInitRequestEnv()

WDBCInitRequestEnv()

HTTPリクエスト固有の情報である CGI環境変数、QUERY_STRINGおよびリクエスト・コンテキストを初期化します。

WDBCGetCGIEnv()、WDBCGetPlsqlProcName()、WDBCGetQuery()およびWDBCExecPlsqlProc()をコールする前に、この関数をコールする必要があります。

構文構文構文構文WDBCAPIReturnCodeWDBCInitRequestEnv(WDBCCtx *wdbcCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCTermRequestEnv()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

WDBC API 8-11

Page 178: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCTermRequestEnv()

WDBCTermRequestEnv()

リクエスト・コンテキストの HTTPリクエスト固有の情報である CGI環境変数、およびQUERY_STRINGに割り当てられているリソースを終了し解放します。execコールバックでリクエストを処理した後は、この APIをコールする必要があります。

構文構文構文構文WDBCAPIReturnCodeWDBCTermRequestEnv(WDBCCtx *wdbcCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCInitRequestEnv()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

8-12 Oracle Application Server C API リファレンス

Page 179: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCGetPlsqlProcName()

WDBCGetPlsqlProcName()

クライアントがリクエストしたストアド・プロシージャ名を返します。プロシージャ名は、URL(http://machine/virtual path/procNameなど)から読み込まれます。

構文構文構文構文text *WDBCGetPlsqlProcName(WDBCCtx *wdbcCtx);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値プロシージャの名前。

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

WDBC API 8-13

Page 180: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCGetQuery()

WDBCGetQuery()

リクエストの QUERY_STRINGの名前と値のペアを、2次元配列で返します。

構文構文構文構文WDBCAPIReturnCodeWDBCGetQuery(

WDBCCtx *wdbcCtx,text **nameArray,text ***valueArry,sb4 *nameArrayLength,sb4 *valueArrayLength);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCInitRequestEnv()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

← nameArray 名前と値のペアの名前を保管する配列。

← valueArray 名前と値のペアの値を保管する配列。

← nameArrayLength 名前の配列の長さ。

← valueArrayLength 値の配列の長さ。

8-14 Oracle Application Server C API リファレンス

Page 181: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCGetCGIEnv()

WDBCGetCGIEnv()

指定された CGI環境変数の値を返します。

構文構文構文構文text *WDBCGetCGIEnv(

WDBCCtx *wdbcCtx,text *name);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値CGI環境変数の値。変数が存在しない場合は NULL になります。

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ name CGI環境変数の名前。

WDBC API 8-15

Page 182: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCExecPlsqlProc()

WDBCExecPlsqlProc()

指定された PL/SQLストアド・プロシージャを実行します。

構文構文構文構文WDBCAPIReturnCodeWDBCExecPlsqlProc(

WDBCCtx *wdbcCtx,WDBCSession *wdbcSession,text *procName,text **nameArray,text **valueArray,sb4 nameArrayLength,sb4 valueArrayLength,ub4 mode);

パラメータパラメータパラメータパラメータ

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcSession セッション・ハンドル。

→ procName 実行する PL/SQLストアド・プロシージャ。

→ nameArray プロシージャのパラメータ名の配列。

→ valueArray プロシージャのパラメータ値の配列。

→ nameArrayLength 名前の配列の長さ。-1 に設定すると、名前と値の配列は配列としてパックするために事前処理が行われます。たとえば、次の問合せ文字列の場合、

name1=value1&name2=value21&name2=value22

ストアド・プロシージャは、スカラー値 value1を持つ name1と、value21と value22を含む配列を持つ name2という 2つのパラメータとともにコールされます。

名前と値のペアのセットを配列としてパックするには、同じ名前を持つ名前と値のペアが複数必要になる点に注意してください。

→ valueArraylength 値の配列の長さ。

→ mode モード・フラグ。次の「モード」の項を参照してください。

8-16 Oracle Application Server C API リファレンス

Page 183: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCExecPlsqlProc()

モードモードモードモードmodeパラメータには次の値を使用します。

これらの値は OR結合が可能です。たとえば、WDBC_DEFAULTは次のように定義されます。

(WDBC_EXPORT_CGI_ENV | WDBC_RESET_PACKAGES)

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCInitRequestEnv()、WDBCGetPlsqlProcName()、WDBCGetQuery()、WDBCFetchHTPBuffer()

表表表表 8-2 モードモードモードモード

値値値値 説明説明説明説明

WDBC_EXPORT_CGI_ENV データベースに CGI環境変数を渡します。ストアド・プロシージャから変数にアクセスする場合にのみ、このオプションが必要になります。この変数を渡す必要がない場合は、この値を選択しないとパフォーマンスが向上します 。

WDBC_RESET_PACKAGES プロシージャを実行する前にデータベースの結果バッファとパッケージ状態変数を消去します。プロシージャの実行前に環境をクリーン・アップするには、このオプションを使用してください。

WDBC_DEFAULT WDBC_EXPORT_CGI_ENVとWDBC_RESET_PACKAGES

WDBC API 8-17

Page 184: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCFetchHTPBuffer()

WDBCFetchHTPBuffer()

WDBCExecPlsqlProc()で実行されるストアド・プロシージャの出力をバッファに取り出します。この関数を実行する前にバッファ内を消去しておく必要があります。

バッファのサイズは 32K以上にはしないでください(データベース・アクセス APIで、バッファのサイズが 32Kに制限されているため)。

構文構文構文構文WDBCAPIReturnCodeWDBCFetchHTPBuffer(

WDBCCtx *wdbcCtx,WDBCSession *wdbcSession,sb4 *resultLength,void *resultBuffer,boolean *anyMoreData);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcSession セッション・ハンドル。

↔ resultLength 返されるバッファのサイズ。入力時には、バッファのサイズを指定します。出力時には、バッファの使用量を指定します。

← resultBuffer 返されるバッファ。

← anyMoreData 取り出すデータが他にあるかどうか。

8-18 Oracle Application Server C API リファレンス

Page 185: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCCommitState()

WDBCCommitState()

データベース・トランザクション・コンテキスト内の現行のトランザクションをコミットします。

構文構文構文構文WDBCAPIReturnCodeWDBCCommitState(

WDBCCtx *wdbcCtx,WDBCSession *wdbcSession);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCRollbackState()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcSession セッション・ハンドル。

WDBC API 8-19

Page 186: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCRollbackState()

WDBCRollbackState()

データベース・トランザクション・コンテキスト内の現行のトランザクションをロールバックします。

構文構文構文構文WDBCAPIReturnCodeWDBCRollbackState(

WDBCCtx *wdbcCtx,WDBCSession *wdbcSession);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WDBCAPIReturnCode の値。

関連項目関連項目関連項目関連項目WDBCCommitState()

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

→ wdbcSession セッション・ハンドル。

8-20 Oracle Application Server C API リファレンス

Page 187: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCGetLastError()

WDBCGetLastError()

最後に発生したデータベース・エラーの情報を返します。WDBC APIから戻り値WDBCAPI_FAILを受け取った場合、この関数をコールしてエラー情報を取得できます。

構文構文構文構文WDBCAPIErrorCodeWDBCGetLastError(

WDBCCtx *wdbcCtx,text *errorMessage,ub4 messageSize);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値データベース・エラー・コードの値。エラー・コードに関する情報は、データベースのドキュメントを参照してください。

→ wdbcCtx WDBCInit()により返されるWDBCコンテキストへのポインタ。

← errorMessage エラー・メッセージのバッファ。

→ messageSize エラー・メッセージのサイズ。

WDBC API 8-21

Page 188: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WDBCVersion()

WDBCVersion()

WDBCのメジャーとマイナーのバージョン値を符号なし long型で返します。

構文構文構文構文ub4WDBCVersion();

パラメータパラメータパラメータパラメータなし

戻り値戻り値戻り値戻り値WDBC APIのバージョン。MAJORVERSIONと MINORVERSIONマクロを使用して、メジャーとマイナーのバージョン番号を取り出すことができます。

例例例例/* wrbctx is the WRB context */ub4 vers;int majorvers, minorvers;

vers = WDBCVersion();majorvers = MAJORVERSION(vers);minorvers = MINORVERSION(vers);WRB_printf(wrbctx, "You are using WDBC API version %i¥.%i¥n", majorvers, minorvers);

8-22 Oracle Application Server C API リファレンス

Page 189: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Web Request Broker v2.0 基本

A

Web Request Broker v2.0 基本基本基本基本 API

この項では、バージョン 2.0で作成したカートリッジを 3.0および 4.0にアップグレードする必要のあるユーザーのために、WRB APIのバージョン 2.0について説明します。Oracle Application Server 4.0用にカートリッジを新規に開発する場合は、「基本 API」で説明されている新しい APIを使用してください。

WRB 2.0 のデータ型のデータ型のデータ型のデータ型■ WRBカートリッジ関数のリターン・コード

■ WRBErrorCode

■ WRBCallbacks構造体

■ WRBEntry構造体

WRB 2.0 API■ WRBClientRead() - 要求元から POSTデータを読み込む。

■ WRBClientWrite() - レスポンス・データを要求元に書き出す。

■ WRBCloseHTTPHeader() - HTTPレスポンス・ヘッダーを完了する。

■ WRBGetAppConfig() - カートリッジの設定パラメータを取得する。

■ WRBGetCharacterEncoding() - 要求元が希望するキャラクタ・セットを取得する。

■ WRBGetClientIP() - 要求元の IPアドレスを取得する。

■ WRBGetConfigVal() - カートリッジの設定パラメータ値を取得する。

■ WRBGetContent() - リクエストの問合せ文字列または POSTデータを取得する。

■ WRBGetEnvironment() - Webリスナーの環境変数をすべて取得する。

■ WRBGetEnvironmentVariable() - 環境変数の値を取得する。

API A-1

Page 190: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

■ WRBGetLanguage() - 要求元が使用する言語を取得する。

■ WRBGetMimeType() - 指定したファイル拡張子の MIME タイプを取得する。

■ WRBGetNamedEntry() - 解析した内容から名前と値のペアを取得する。

■ WRBGetORACLE_HOME() - Webリスナーの ORACLE_HOME値を取得する。

■ WRBGetParsedContent() - リクエストの内容を名前と値のペアで取得する。

■ WRBGetPassword() - 現在認証中のユーザーのパスワードを取得する。

■ WRBGetReqMimeType() - 現行リクエストの MIME タイプを取得する。

■ WRBGetURI() - 現行のリクエスト URIを取得する。

■ WRBGetURL() - 現行のリクエスト URLを取得する。

■ WRBGetUserID() - 現在認証中のユーザーのユーザー名を取得する。

■ WRBLogMessage() - WRBXのログ・ファイルへテキスト文字列を追加する。

■ WRBReturnHTTPError() - 標準の HTTPエラー・メッセージを返す。

■ WRBReturnHTTPRedirect() - 現行リクエストを別の URIにリダイレクトする。

■ WRBSetAuthorization() - カートリッジの認証を設定する。

A-2 Oracle Application Server C API リファレンス

Page 191: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBカートリッジ関数のリターン・コード

WRB カートリッジ関数のリターン・コードカートリッジ関数のリターン・コードカートリッジ関数のリターン・コードカートリッジ関数のリターン・コード次に、カートリッジ関数が返すWRBRetrunCode型のリターン・コードを示します。一部のWRB API関数もこれらのコードを返します。

表表表表 A-1 リターン・コードリターン・コードリターン・コードリターン・コード

リターン・コードリターン・コードリターン・コードリターン・コード 説明説明説明説明

WRB_DONE 正常に終了したことを示します。

WRB_ERROR エラーのためにリクエストが完了できなかったことを示します。

WRB_ABORT 重大なエラーが発生したため、コール側のWRBXはすぐに終了する必要があります。

注意注意注意注意 : 前述のリターン・コードではなく、WAPIReturnCode 型の値を返すWRB API関数も存在します。「WRBErrorCode」を参照してください。

Web Request Broker v2.0 基本 API A-3

Page 192: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBErrorCode

WRBErrorCodeWRBErrorCode 型の変数は、次の標準の HTTPステータス値を使用します。

現状では、WRBエラー・コードはキャストとして指定します。次にその例を示します。

(WRBErrorCode)400

関連項目関連項目関連項目関連項目WRBReturnHTTPError()

表表表表 A-2 WRB エラー・コードエラー・コードエラー・コードエラー・コード

ステータス・コードステータス・コードステータス・コードステータス・コード 意味意味意味意味

200 OK

201 作成済み

202 受諾済み

204 内容なし

301 永続的に移動済み

302 一時的に移動済み

304 変更なし

400 リクエストが無効

401 認証なし

403 禁止

404 見つからない

500 サーバーの内部エラー

501 インプリメントされていない

502 ゲートウェイが無効

503 サービスが利用不可

A-4 Oracle Application Server C API リファレンス

Page 193: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBCallbacks構造体

WRBCallbacks 構造体構造体構造体構造体WRBCallbacks 構造体は、WRBアプリケーション・エンジンがカートリッジ関数をコールする際に使用するディスパッチ・テーブルを定義します。詳細は「Entry-Pointコールバック」を参照してください。

struct WRBCallbacks{

WRBReturnCode (*init_WRBCallback)();WRBReturnCode (*exec_WRBCallback)();WRBReturnCode (*shut_WRBCallback)();

WRBReturnCode (*reload_WRBCallback)();

char *(*version_WRBCallback)();void (*version_free_WRBCallback)();WRBReturnCode (*authorize_WRBCallback)();

};typedef struct WRBCallbacks WRBCallbacks;

Web Request Broker v2.0 基本 API A-5

Page 194: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBEntry構造体

WRBEntry 構造体構造体構造体構造体WRBGetParsedContent() およびWRBGetNamedEntry() 関数は、WRBEntry 構造体を使用して HTTPリクエストに付随する問合せ文字列や POSTデータから抽出される名前と値のペアを保管します。

struct WRBEntry{

char *name;char *value;

};typedef struct WRBEntry WRBEntry;

A-6 Oracle Application Server C API リファレンス

Page 195: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBClientRead()

WRBClientRead()

現行の HTTPリクエストの POSTデータから、指定されたバイト数を指定されたバッファに読み込みます。

exec関数からこの関数をコールして、現行のリクエストに対応する POSTデータを取得できます。この関数は、特にバイナリなどの rawの POSTデータのバッファリングに適しています。

ただし、POSTデータに名前と値のペアの形式が使用されている場合は、通常WRBGetParsedContent() をコールする方が便利です。

WRBClientRead() とWRBGetContent() の相違点は次のとおりです。

■ WRBGetContent() は問合せ文字列も POSTデータも取得できますが、WRBClientRead() は POSTデータしか取得できません。

■ WRBGetContent() はすべての POSTデータを一度に取得しますが、WRBClientRead() は指定されたバイト数のみを取得します。

構文構文構文構文ssize_tWRBClientRead(

void WRBCtx,char *szData,int nBytes);

パラメータパラメータパラメータパラメータ

注意注意注意注意 : 現在の APIでは、指定された HTTPリクエストに対するすべてのWRBClientRead() コールはWRBClientWrite() コールが行われる前に行う必要があります。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ szData 関数が要求元から読み込んだデータを保管するバッファへのポインタ。

→ nBytes szDataが指すバッファのバイト数。

Web Request Broker v2.0 基本 API A-7

Page 196: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBClientRead()

戻り値戻り値戻り値戻り値要求元から正常に読み込んだバイト数。

関連項目関連項目関連項目関連項目WRBClientWrite() 、WRBGetContent() およびWRBGetParsedContent()

A-8 Oracle Application Server C API リファレンス

Page 197: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBClientWrite()

WRBClientWrite()

現行の HTTPリクエストに対して、指定したバッファから指定したバイト数を要求元に書き込みます。

exec関数からこの関数をコールして、現行のリクエストに対するデータを要求元に送信できます。この関数を使用して、Content-type: ヘッダー行や Set-Cookie: ヘッダー行などの HTTPデータや実際の内容を送信できます。

また、この関数は次の用途に使用できます。

■ 無効なリクエストまたはカートリッジ・エラーが発生した場合(WRBReturnHTTPError() とWRBReturnHTTPRedirect() を参照)に対してエラー・メッセージを生成します。

■ リダイレクション・メッセージを生成します。

構文構文構文構文ssize_tWRBClientWrite(

void *WRBCtx,char *szData,int nBytes);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値要求元に正常に書き出したバイト数。

注意注意注意注意 : 現在の APIでは、指定した HTTPリクエストに対するすべてのWRB_walkPBlock() コールは、WRBClientWrite() コールが行われる前に行う必要があります。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ szData 要求元に書き出されるデータが保管されているバッファへのポインタ。

→ nBytes 要求元に書き出すバイト数。

Web Request Broker v2.0 基本 API A-9

Page 198: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBClientWrite()

関連項目関連項目関連項目関連項目WRBReturnHTTPError() 、WRBReturnHTTPRedirect() およびWRBCloseHTTPHeader()

A-10 Oracle Application Server C API リファレンス

Page 199: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBCloseHTTPHeader()

WRBCloseHTTPHeader()

この関数は、直前のWRBReturnHTTPError() またはWRBReturnHTTPRedirect() コールで closeパラメータが FALSEに設定されている場合に、要求元に対する HTTPヘッダーの書込みを終了します。

直前のWRBReturnHTTPError() またはWRBReturnHTTPRedirect() コールで closeパラメータが FALSEに設定されている場合、authorize関数または exec関数からこの関数をコールできます。

構文構文構文構文ssize_tWRBCloseHTTPHeader( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値要求元に正常に書き出したバイト数。

関連項目関連項目関連項目関連項目WRBReturnHTTPError() および WRBReturnHTTPRedirect()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-11

Page 200: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetAppConfig()

WRBGetAppConfig()

wrb.app設定ファイルの [APPLICATION.<appname>] セクションに定義されたカートリッジ設定データを取り出します。この関数はファイルを直接読み込まず、リスナーの起動時、またはそのリスナーの設定データをリロードするシグナルの受信時にロードした設定データを返します。

カートリッジに Reload関数がインプリメントされている場合、この関数をコールして更新されたカートリッジの設定データをロードできます。

設定ファイルのカートリッジ・セクション([SYSTEM_<appname>/<cartname>] セクション)からデータを読み込むには、WRBGetConfigVal()を使用します。

構文構文構文構文char**WRBGetAppConfig( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値コール側カートリッジの設定データを構成する名前と値のペアを指すポインタ配列の先頭のエレメントへのポインタ。配列の各エレメントは、parameter=valueの形式の文字列ポインタです。parameterは設定パラメータの名前で、valueはその値です。配列は NULL ポインタで終わります。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetConfigVal()

注意注意注意注意 : この関数は、Oracle Application Server 4.x では常に NULLを返します。かわりにWRB_getAppConfigVal()を使用してください。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-12 Oracle Application Server C API リファレンス

Page 201: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetCharacterEncoding()

WRBGetCharacterEncoding()

現行リクエストに対するレスポンスとして、要求元が受付け可能なキャラクタ・セットの識別子をカンマ区切りのリストで返します。

カートリッジが 1つ以上のキャラクタ・セットをサポートする場合、exec関数からこの関数をコールして、要求元が使用するキャラクタ・セットのリストを取得できます。exec関数では、このリストの中で最初に出てくるキャラクタ・セットを選択してカートリッジのレスポンスを生成することをお薦めします。

構文構文構文構文char *WRBGetCharacterEncoding( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値キャラクタ・セット識別子のカンマ区切りリスト文字列へのポインタ。

関連項目関連項目関連項目関連項目WRBGetLanguage()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-13

Page 202: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetClientIP()

WRBGetClientIP()

現行の HTTPリクエストを発行した要求元の IPアドレスを返します。

この関数は authorize関数または exec関数からコールできます。通常 authorize関数は、要求元が現行のリクエストを信頼できるホストから発行したかどうかを確認するために、この関数をコールします。

構文構文構文構文ub4WRBGetClientIP( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値ホストのバイト順序による符号なし 32ビット整数の IPアドレス。各バイトは、IPアドレスの 4つのコードがエンコーディングされたものです。

関連項目関連項目関連項目関連項目WRBSetAuthorization() 、WRBGetUserID() およびWRBGetPassword()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-14 Oracle Application Server C API リファレンス

Page 203: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetConfigVal()

WRBGetConfigVal()

wrb.app設定ファイルの [SYSTEM_<appname>/<cartname>] セクション(カートリッジ・セクション)から、指定された設定パラメータの値を取り出します。この関数は[APPLICATION.<appname>] セクション(アプリケーション・セクション)からは値を読み込みません。アプリケーション・セクションから値を読み込むにはWRB_getAppConfigVal()を使用します。

この関数は、リスナーの起動時、またはそのリスナーの設定データをリロードするシグナルの受信時にロードした設定値を読み込みます。

これらの設定可能なパラメータの現在値が必要な場合は、いつでもこの関数をコールできます。そのためユーザーのカートリッジでは、このようなパラメータを静的データやアプリケーション・コンテキストの構造体を使用して管理する必要はありません。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

構文構文構文構文char *WRBGetConfigVal(

void *WRBCtx,char *name );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値nameパラメータで指定された設定パラメータの値へのポインタ。

関連項目関連項目関連項目関連項目WRBGetAppConfig()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ name 値を検索する設定パラメータの名前。

Web Request Broker v2.0 基本 API A-15

Page 204: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetContent()

WRBGetContent()

リクエスト・メソッドが GETの場合は現行の HTTPリクエストの問合せ文字列、リクエスト・メソッドが POSTの場合はリクエストの POSTデータを返します。

exec関数からこの関数をコールして、現行リクエストの POSTデータを取得できます。

ただし、HTML フォームを処理する場合など、問合せ文字列や POSTデータに名前と値のペアの形式が使用される場合は、通常WRBGetParsedContent() をコールする方が便利です。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

構文構文構文構文char *WRBGetContent( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値現行の HTTPリクエストの問合せ文字列または POSTデータの文字列へのポインタ。要求元が内容を送信しない場合は NULL を返します。

関連項目関連項目関連項目関連項目WRBGetParsedContent()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-16 Oracle Application Server C API リファレンス

Page 205: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetEnvironment()

WRBGetEnvironment()

Webリスナー・プロセスの環境変数を取得します。この関数は、どのカートリッジ関数からでもコールできます。

特定の環境変数の値を取得するには、通常WRBGetEnvironmentVariable() またはWRBGetORACLE_HOME()をコールする方が便利です。

構文構文構文構文char**WRBGetEnvironment( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値Webリスナーが持つ環境変数の名前と値のペアが格納されている配列内の先頭のエレメントへのポインタ。名前と値の各ペアは、次の形式の文字列です。

variable=value

variableは環境変数の名前で、valueはその値です。配列は NULL ポインタで終わります。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetORACLE_HOME()および WRBGetEnvironmentVariable()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-17

Page 206: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetEnvironmentVariable()

WRBGetEnvironmentVariable()

Webリスナー・プロセスが起動時に継承する環境変数の値か、または、現行のリクエストにより設定された CGI環境変数へのポインタを返します。この関数は、どのカートリッジ関数からでもコールできます。

ORACLE_HOMEの値が必要な場合は、WRBGetORACLE_HOME()をコールする方が便利です。

構文構文構文構文char *WRBGetEnvironmentVariable(

void *WRBCtx,char *szEnvVar);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値szEnvVarで指定されたWebリスナー環境変数の値へのポインタ。指定された環境変数がWebリスナーの環境に存在しない場合は NULL を返します。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetORACLE_HOME()および WRBGetEnvironment()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ szEnvVar 値が必要な環境変数の名前。

A-18 Oracle Application Server C API リファレンス

Page 207: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetLanguage()

WRBGetLanguage()

要求元が現行リクエストのレスポンスを受信するために使用する自然言語を示す言語識別子のカンマ区切りのリストを返します。

カートリッジが 1つ以上の自然言語をサポートする場合、exec関数からこの関数をコールして、要求元が使用する自然言語のリストを取得することができます。exec関数では、このリストの中で最初に出てくる言語を選択してカートリッジのレスポンスを生成することをお薦めします。

構文構文構文構文char *WRBGetLanguage( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値言語識別子のカンマ区切りリストの文字列へのポインタ。

関連項目関連項目関連項目関連項目WRBGetCharacterEncoding()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-19

Page 208: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetMimeType()

WRBGetMimeType()

WRBアプリケーション・エンジンがファイル名拡張子に対応付ける MIME タイプへのポインタを返します。exec関数からこの関数をコールして、要求元が要求する MIME タイプを取得できます。次に、この値を使用してレスポンスに使用する MIME タイプを設定できます。

ただし、通常これを行うには、WRBGetReqMimeType() をコールする方が便利です。

構文構文構文構文char *WRBGetMimeType(

void *WRBCtx,char *extension );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値MIME タイプ名の文字列へのポインタ。指定されたファイル名拡張子が、WRB設定にリストされているどの MIME タイプにも対応しない場合、WRBGetMimeType() は "text/html" を返します。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetReqMimeType()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ extension 指定されたMIME タイプに関連付けるファイル名拡張子。

A-20 Oracle Application Server C API リファレンス

Page 209: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetNamedEntry()

WRBGetNamedEntry()

WRBGetParsedContent() が返す解析済みの内容が入っている配列の項目の値へのポインタを返します。項目は名前で指定します。

最初にWRBGetParsedContent() をコールした後、exec関数からこの関数をコールして、特定の問合せ文字列の値や POSTデータの項目を取得できます。この関数は特定のフィールド名が事前にわかっている場合に HTML フォームを解析するのに便利です。

構文構文構文構文char *WRBGetNamedEntry(

char *entryName,WRBEntry *WRBEntries,int numEntries);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値entryName で指定された解析済み内容項目の値。指定された項目が見つからない場合はNULL が返されます。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetParsedContent() および WRBEntry構造体

→ entryName 値が必要な POSTデータの項目名。

→ WRBEntries WRBGetParsedContent()により返される解析済みの内容が入っている配列へのポインタ。

→ numEntries WRBGetParsedContent()により返される POSTデータ項目の合計数。

Web Request Broker v2.0 基本 API A-21

Page 210: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetORACLE_HOME()

WRBGetORACLE_HOME()

Webリスナー・プロセスが起動時に継承する ORACLE_HOME環境変数の値へのポインタを返します。

運用管理を便利にするために、カートリッジは必要なデータ・ファイル、スクリプトおよびその他のファイルを、ORACLE_HOMEディレクトリの下のファイル・システムに保存できるようになっています。これにより、カートリッジはパス名をハードコードしないで、ファイルを集中して保管できます。カートリッジに関連するこれらのファイルにアクセスするには、WRBGetORACLE_HOME()から返される値を利用できます。

構文構文構文構文char *WRBGetORACLE_HOME( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値環境変数 ORACLE_HOMEの文字列へのポインタ。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetEnvironment() および WRBGetEnvironmentVariable()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-22 Oracle Application Server C API リファレンス

Page 211: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetParsedContent()

WRBGetParsedContent()

リクエスト・メソッドが GETの場合は現行の HTTPリクエストの問合せ文字列、POSTの場合は POSTデータを取得します。この関数は exec関数からコールできます。

この関数は、このデータを解析し、WRBEntry構造体へのポインタの配列を返します。それぞれのWRBEntry 構造体には、POSTデータの項目名と値が含まれます。また、配列のエレメント数も返されます。

返されるポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

リクエストの問合せ文字列または POSTデータに名前と値のペアの形式が使用されない場合、かわりにWRBGetContent() をコールして、データをバイナリの形式で取得できます。

構文構文構文構文WRBReturnCodeWRBGetParsedContent(

void *WRBCtx,WRBEntry **WRBEntries,int *numEntries );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WRBGetParsedContent() は、WRBReturnCode 型の値を返します。

関連項目関連項目関連項目関連項目WRBGetContent() 、WRBGetNamedEntry() およびWRBEntry構造体

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

← WRBEntries 解析済みの内容が入っている配列へのポインタを保管する変数へのポインタ。このパラメータを指定するには、WRBEntry * 型の変数を宣言し、変数のアドレスを渡します。

← numEntries 項目の合計数が入る変数へのポインタ。

Web Request Broker v2.0 基本 API A-23

Page 212: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetPassword()

WRBGetPassword()

カートリッジからの認証要求に対して、要求元が入力したパスワードへのポインタを返します(「WRBSetAuthorization() 」を参照)。

この関数は authorize関数または exec関数からコールできます。authorize関数はこの関数とWRBGetUserID() をコールして、現行のリクエストを発行した要求元を認証できます。カートリッジでユーザー・アカウントを管理する場合、exec関数からこの関数をコールすることをお薦めします。

構文構文構文構文char *WRBGetPassword( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値パスワードの文字列へのポインタ。パスワードが見つからない場合は NULL が返されます。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBSetAuthorization() および WRBGetUserID()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-24 Oracle Application Server C API リファレンス

Page 213: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetReqMimeType()

WRBGetReqMimeType()

WRBアプリケーション・エンジンが現行の HTTPリクエスト URIのファイル拡張子と関連付けている MIME タイプへのポインタを返します。

exec関数からこの関数をコールして、要求元が要求する MIME タイプを取得できます。次に、この値を使用してレスポンスに使用する MIME タイプを設定できます。

構文構文構文構文char *WRBGetReqMimeType( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値MIME タイプの文字列へのポインタ。このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBGetMimeType()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-25

Page 214: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetURI()

WRBGetURI()

WRBカートリッジで現在処理中の HTTPリクエストの Uniform Resource Identifier(URI)へのポインタを返します。

この関数は authorize関数または exec関数からコールできます。たとえば、authorize関数を使用して、異なる URIに対して異なる認証チェックを行うことができます。exec関数からWRBGetURI() をコールして、現行のリクエストを満たす方法を判断できます。

GETリクエストに対する問合せ文字列をその URIから取り出すことは可能ですが、通常WRBGetContent() またはWRBGetParsedContent() をコールした方が便利です。

構文構文構文構文char *WRBGetURI( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値現行の HTTPリクエストの URIの文字列へのポインタ。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRBGetURL()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-26 Oracle Application Server C API リファレンス

Page 215: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetURL()

WRBGetURL()

WRBカートリッジで現在処理中の HTTPリクエストの Uniform Resource Locator(URL)へのポインタを返します。

この関数は authorize関数または exec関数からコールできます。たとえば、authorize関数を使用して、異なる URLに対して異なる認証チェックを行うことができます。exec関数からこの関数をコールして、現行のリクエストを満たす方法を判断できます。

GETリクエストに対する問合せ文字列をその URLから取り出すことは可能ですが、通常WRBGetContent() またはWRBGetParsedContent() をコールした方が便利です。

構文構文構文構文char *WRBGetURL( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値現行の HTTPリクエストの URLの文字列へのポインタ。

コールバックが実行されている間、返されたポインタを使用できます。戻り値のメモリーはWRBエンジンによって割り当てられ、解放されます。

関連項目関連項目関連項目関連項目WRBGetURI()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

Web Request Broker v2.0 基本 API A-27

Page 216: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBGetUserID()

WRBGetUserID()

カートリッジからの認証要求に対し、要求元で入力したユーザー名へのポインタを返します(「WRBSetAuthorization() 」を参照)。

この関数は authorize関数または exec関数からコールできます。authorize関数はこの関数とWRBGetPassword() をコールして、現行のリクエストを発行した要求元を認証できます。カートリッジでユーザー・アカウントを管理する場合、exec関数からこの関数をコールすることをお薦めします。

構文構文構文構文char *WRBGetUserID( void *WRBCtx );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値ユーザー名へのポインタ。ユーザー名が見つからない場合は NULL が返されます。

このポインタは、カートリッジから変更できないWRBアプリケーション・エンジンのメモリーを指します。

関連項目関連項目関連項目関連項目WRBSetAuthorization() および WRBGetPassword()

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

A-28 Oracle Application Server C API リファレンス

Page 217: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBLogMessage()

WRBLogMessage()

$ORACLE_HOME/ows30/log (UNIX)、または%ORACLE_HOME%¥ows30¥log (NT)ディレクトリに存在する wrb_ cartridge_procIDという名前のWRBXのログ・ファイルに指定した文字列を追加します。cartridgeの部分にはカートリッジ名(「Web Request Brokerの管理」ページを使用して定義)、procIDにはWRBXのプロセス IDが入ります。

どのカートリッジ関数からでも、この関数をコールしてカートリッジをデバッグしたりカートリッジのトランザクション・ログを出力できます。

構文構文構文構文voidWRBLogMessage(

void *WRBCtx,char *message,int nSeverity);

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値なし

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ message ログ・ファイルに書き込まれるメッセージが入るバッファへのポインタ。

→ nSeverity このパラメータが 0(ゼロ)より大きい場合、指定されたメッセージをログに出力します。このパラメータが 0(ゼロ)の場合は、メッセージをログに出力せずに、すぐに終了します。

Web Request Broker v2.0 基本 API A-29

Page 218: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBReturnHTTPError()

WRBReturnHTTPError()

現行の HTTPリクエストに対する標準の HTTPエラーを要求元に送信します。要求元から無効なリクエストを受け取った場合、この関数を authorize関数または exec関数からコールして、要求元にカートリッジ・エラーを通知できます。

構文構文構文構文ssize_tWRBReturnHTTPError(

void *WRBCtx,WRBErrorCode nErrorCode,char *szErrorMesg,boolean close );

パラメータパラメータパラメータパラメータ

注意注意注意注意 : 最初にWRBClientWrite() をコールする前に、対象となるHTTPリクエストに対してWRBReturnHTTPError() コールを実行する必要があります。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ nErrorCode エラーの種類を示す HTTPステータス番号。これには、標準の HTTPエラー・コードを指定します。「WRBErrorCode」を参照してください。

→ szErrorMessage 要求元に表示するエラー・メッセージ文字列へのポインタ。

要求元に表示するカスタム・エラー・メッセージを指定できます。エラー・メッセージに NULL ポインタを指定した場合、指定したエラー・コードに関連付けられた標準の HTTPエラー・メッセージが使用されます。

→ close 要求元に送信される HTTPヘッダーを終了するには、TRUEに設定します。

HTTPヘッダーを完了する前に Set-Cookie: ヘッダーなどの追加のHTTPヘッダー情報を書き込む場合、このパラメータを FALSEに設定します。その後WRBCloseHTTPHeader() をコールして、要求元に対する HTTPヘッダーの書込みを終了する必要があります。

A-30 Oracle Application Server C API リファレンス

Page 219: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBReturnHTTPError()

戻り値戻り値戻り値戻り値要求元に正常に書き出したバイト数。

関連項目関連項目関連項目関連項目WRBCloseHTTPHeader() および WRBReturnHTTPRedirect()

Web Request Broker v2.0 基本 API A-31

Page 220: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBReturnHTTPRedirect()

WRBReturnHTTPRedirect()

現行の HTTPリクエストを指定した URIにリダイレクトします。現行のリクエストが古いURIを使用している場合、この関数を authorize関数または exec関数からコールして、標準の HTTPリダイレクション・レスポンスを要求元に送信できます。この機能により、前バージョンで使用された URIをサポートしながら、カートリッジを修正したり、再編成することができます。

構文構文構文構文ssize_tWRBReturnHTTPRedirect(

void *WRBCtx,char *szURI,boolean close );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値要求元に正常に書き出したバイト数。

関連項目関連項目関連項目関連項目WRBCloseHTTPHeader() および WRBReturnHTTPError()

注意注意注意注意 : 現在では、HTTPリクエストに対して最初のWRBClientWrite()コールを実行する前に、WRBReturnHTTPRedirect() をコールする必要があります。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ szURI リクエストのリダイレクト先の URI。

→ close 要求元に送信される HTTPヘッダーを終了するには、TRUEに設定します。

HTTPヘッダーを完了する前に Set-Cookie: ヘッダーなどの追加のHTTPヘッダー情報を書き込む場合、このパラメータを FALSEに設定します。その後WRBCloseHTTPHeader() をコールして、要求元に対する HTTPヘッダーの書込みを終了する必要があります。

A-32 Oracle Application Server C API リファレンス

Page 221: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBSetAuthorization()

WRBSetAuthorization()

現行の HTTPリクエストを発行した要求元にチャレンジを送信し、ブラウザの認証レルムを設定します。認証レルムは、現行のリクエスト URIに対する認証のダイアログ・ボックスに使用されます。

構文構文構文構文WRBReturnCodeWRBSetAuthorization(

void *WRBCtx,WRBAuthScheme nScheme,char *szRealm,boolean bAndOrFlag );

パラメータパラメータパラメータパラメータ

戻り値戻り値戻り値戻り値WRBReturnCode 型の値。

→ WRBCtx WRBコンテキスト・オブジェクトを指すポインタ。ユーザーは直接操作できません。WRBアプリケーション・エンジンからカートリッジ関数に渡されます。

→ nScheme 要求元で設定する認証または制限のタイプ(「WRB認証方式」を参照)。

→ szRealm 要求元で認証のダイアログ・ボックスに使用する認証レルムの名前。nSchemeで認証を指定する場合、このパラメータを NULL にしないでください。nSchemeで制限のタイプを指定する場合、このパラメータは既存のドメインのグループまたは「WRBの設定」で定義した IPアドレスにする必要があります。

→ bAndOrFlag 2つの連続するコールで FALSEが設定された場合、このパラメータは、要求元が指定された方式の両方を満たす必要があることを示します。それらコールの両方に TRUEが設定された場合、このパラメータは、要求元が指定された方式のいずれか 1つを満たす必要があることを示します。

Web Request Broker v2.0 基本 API A-33

Page 222: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBSetAuthorization()

WRB 認証方式認証方式認証方式認証方式nSchemeパラメータは、次の値のいずれかになります。

使用方法使用方法使用方法使用方法init または authorizeカートリッジ関数からWRBSetAuthorization() をコールできます。カートリッジの認証方式をグローバルに 1回だけ設定するには、init 関数からWRBSetAuthorization() をコールします。

カートリッジへのアクセスをきめ細かく制御する(たとえば、異なる URIに異なる認証方式やレルムを割り当てる)には、authorize関数からWRBSetAuthorization() をコールします。WRBSetAuthorization() を両方の関数からコールした場合は、authorizeからのコールの方が initからのコールよりも優先されます。

また、WRBSetAuthorization() を使用して、現行のリクエスト URIに制限方式を適用することも可能です。nSchemeにWRB_AUTH_DOMAINを指定する場合、szRealmパラメータを使用してWRBの管理ページで定義した既存のドメインのグループを指定する必要があります。

同様にWRB_AUTH_IPを指定する場合は、szRealmには「WRBの設定」で定義した IPアドレスを指定する必要があります。

2つの方式を使用するつの方式を使用するつの方式を使用するつの方式を使用するWRBSetAuthorization() を 2回連続コールして、要求元の認証に既存の認証方式と制限方式の両方を適用するように指定することができます。これらのコールの両方でbAndOrFlagを FALSEに設定した場合、要求元は両方の方式を満たす必要があります。 また、

認証方式認証方式認証方式認証方式 説明説明説明説明

WRB_AUTH_BASIC_EXIST 「WRBの設定」設定で定義された、既存の基本認証方式を指定します。

WRB_AUTH_BASIC_NEW 新規の基本認証方式を指定します。

WRB_AUTH_DIGEST_EXIST 「WRBの設定」で定義された、既存のダイジェスト認証方式を指定します。

WRB_AUTH_DIGEST_NEW 新規のダイジェスト認証方式を指定します。

WRB_AUTH_DOMAIN WRBの管理ページで定義された既存のドメインのグループを使用して、ドメイン・ベースの制限を指定します。

WRB_AUTH_IP WRBの管理ページで定義された既存の IPアドレスのグループを使用して、IPベースの制限を指定します。

A-34 Oracle Application Server C API リファレンス

Page 223: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBSetAuthorization()

bAndOrFlagを TRUEに設定した場合、要求元は 2つの方式のいずれか一方を満たす必要があります。

関連項目関連項目関連項目関連項目WRBGetUserID() 、WRBGetPassword() およびWRBGetClientIP()

注意注意注意注意 : 指定された方式は両方とも、WRBリスナーの設定で定義された既存のものである必要があります。

Web Request Broker v2.0 基本 API A-35

Page 224: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRBSetAuthorization()

A-36 Oracle Application Server C API リファレンス

Page 225: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

索引索引索引索引

Aauthorize関数,1-9

CCookie

WRB APIを使用した検索,2-30WRB APIを使用した設定,2-57

Eexec関数,1-11

GGETデータ

WRB APIを使用した取得,2-40

HHTTPヘッダー

WRB APIを使用した検索,2-50WRB APIを使用して返す,2-52

IICX サービス

API,4-1詳細なデータの取得,4-4セキュリティ,4-19内容データの送信,4-13プロキシ設定,4-16,4-17ヘッダー情報の取得,4-6,4-9ヘッダー・データの送信,4-14

リクエスト情報の取得,4-7リクエストの作成,4-2リクエストの認証,4-12リクエストの破棄,4-3リクエストの発行,4-10リクエスト・メソッドの設定,4-15

initInstance関数,1-5,1-7,1-8

LLoggerサービス

API,5-1詳細レベル,5-2メッセージ・フォーマット,5-3ロギングのガイドライン,5-1

OORACLE_HOME

WRB APIを使用した取得,2-39

PPOSTデータ

WRB APIを使用した検索,2-40,2-49

Rreload関数,1-12

SSAPIReturnCodeの値,3-2shutdown関数,1-15,1-16,1-17

索引索引索引索引 -1

Page 226: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

Ttx_annotate_path(),6-2tx_annotate_url(),6-3tx_begin(),6-5tx_close(),6-6tx_commit(),6-7tx_info(),6-8tx_open(),6-9tx_reg(),6-10tx_resume(),6-11tx_rollback(),6-12tx_set_transaction_property(),6-13tx_set_transaction_timeout(),6-14tx_suspend(),6-15TXINFO構造体,6-16

Vversion_free関数,1-14version関数,1-13

WWRB

Intercartridge Exchangeサービス API,4-1Loggerサービス API,5-1基本 API,2-1コンテンツ・サービス API,7-1トランザクション・サービス API,6-1

WRB 2.0 API,A-1WRB_addPBElem(),2-5WRB_annotateURL(),2-7WRB_apiVersion(),2-8WRB_CNTcloseDocument(),7-6WRB_CNTcloseRepository(),7-4WRB_CNTdestroyDocument(),7-7WRB_CNTflushDocument(),7-14WRB_CNTgetAttributes(),7-8WRB_CNTlistDocuments(),7-15WRB_CNTopenDocument(),7-5WRB_CNTopenRepository(),7-2WRB_CNTreadDocument(),7-12WRB_CNTsetAttributes(),7-11WRB_CNTwriteDocument(),7-13WRB_copyPBlock(),2-9WRB_createPBlock(),2-10

WRB_delPBElem(),2-11WRB_destroyPBlock(),2-12WRB_findPBElem(),2-13WRB_findPBElemVal(),2-14WRB_firstPBElem(),2-15WRB_getAppConfigSection(),2-19WRB_getAppConfigVal(),2-24WRB_getAppName(),2-25WRB_getCartridgeName(),2-26WRB_getClientCert(),2-27WRB_getContext(),2-29WRB_getCookies(),2-30WRB_getEnvironment(),2-32WRB_getListenerInfo(),2-34WRB_getMultAppConfigSection(),2-35WRB_getMultipartData(),2-37WRB_getORACLE_HOME(),2-39WRB_getParsedContent(),2-40WRB_getRequestInfo(),2-42WRB_ICXcreateRequest(),4-2WRB_ICXdestroyRequest(),4-3WRB_ICXfetchMoreData(),4-4WRB_ICXgetHeaderVal(),4-6WRB_ICXgetInfo(),4-7WRB_ICXgetParsedHeader(),4-9WRB_ICXmakeRequest(),4-10WRB_ICXsetAuthInfo(),4-12WRB_ICXsetContent(),4-13WRB_ICXsetHeader(),4-14WRB_ICXsetMethod(),4-15WRB_ICXsetNoProxy(),4-16WRB_ICXsetProxy(),4-17WRB_ICXsetTXAttribute(),4-18WRB_ICXsetWalletInfo(),4-19WRB_isEnterpriseEdition(),2-44WRB_IsInSession(),3-4WRB_LOGclose(),5-10WRB_LOGopen(),5-5WRB_LOGwriteAttribute(),5-9WRB_LOGwriteMessage(),5-7WRB_nextPBElem(),2-45WRB_numPBElem(),2-47WRB_printf(),2-48WRB_read(),2-49WRB_recvHeaders(),2-50WRB_sendHeader(),2-52WRB_SessionEnable(),3-5

索引索引索引索引 -2

Page 227: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

WRB_SessionEnd(),3-6WRB_SessionGetCtx(),3-7WRB_SessionGetCurrentHndl(),3-8WRB_SessionGetID(),3-9WRB_SessionGetIdleTm(),3-10WRB_SessionSetCtx(),3-11WRB_SessionSetIdleTm(),3-12WRB_SessionStart(),3-13WRB_setAuthBasic(),2-53WRB_setAuthDigest(),2-54WRB_setAuthServer(),2-55WRB_setCookies(),2-57WRB_timestamp(),2-58WRB_walkPBlock(),2-59WRB_write(),2-61WRBCallbacks構造体,1-3WRBClientRead(),A-7WRBClientWrite(),A-9WRBCloseHTTPHeader(),A-11WRBGetAppConfig(),A-12WRBGetCharacterEncoding(),A-13WRBGetClientIP(),A-14WRBGetConfigVal(),A-15WRBGetContent(),A-16WRBGetEnvironment(),A-17WRBGetEnvironmentVariable(),A-18WRBGetLanguage(),A-19WRBGetMimeType(),A-20WRBGetNamedEntry(),A-21WRBGetORACLE_HOME(),A-22WRBGetParsedContent(),A-23WRBGetPassword(),A-24WRBGetReqMimeType(),A-25WRBGetURI(),A-26WRBGetURL(),A-27WRBGetUserID(),A-28WRBLogMessage(),A-29WRBReturnCode (enum),1-2WRBReturnHTTPError(),A-30WRBReturnHTTPRedirect(),A-32WRBSetAuthorization(),A-33WRB関数のリターン・コード,2-4WRBの基本 API,2-1

かかかかカートリッジ開発

authorize関数,1-9Cookie,2-30,2-57exec関数,1-11HTTPヘッダーの取得,2-50HTTPヘッダーを返す,2-52initInstance関数,1-5,1-7,1-8ORACLE_HOMEの値の取得,2-39POSTデータの取得,2-49reload関数,1-12shutdown関数,1-15,1-16,1-17version_free関数,1-14version関数,1-13WRB Intercartridge Exchangeサービス API,4-1WRB Loggerサービス API,5-1WRBCallbacks構造体,1-3WRB基本 API,2-1WRBコンテンツ・サービス API,7-1WRBトランザクション・サービス API,6-1カートリッジの設定データの取得,2-19カートリッジ名の取得,2-26環境変数の取得,2-32クライアントの証明書の取得,2-27設定情報の取得,2-35設定パラメータの値の取得,2-24問合せ文字列の取得,2-40バッファから文字列を書き出す,2-61パフォーマンス分析,2-58パラメータ・ブロック,2-3文字列の書込み,2-48ユーザーの認証,2-53,2-54,2-55リクエスト情報の取得,2-42リスナー情報の取得,2-34リターン・コード,2-4

環境変数WRB APIでの取得,2-32

きききき基本認証,2-53

ここここコンテンツ・サービス

API,7-1

索引索引索引索引 -3

Page 228: Oracle Application Server€¦ · Oracle Application Server C API リファレンス、 リリース4.0.8 部品番号: J00096-01 第1 版 1999 年10 月 原本名:Oracle Application

しししし詳細レベル,5-2

せせせせセキュリティ

ICX,4-19セッション API,3-1設定情報

WRB APIを使用した取得,2-35

たたたたダイジェスト認証,2-54

ととととトランザクション・サービス

API,6-1

にににに認証基本,2-53ダイジェスト,2-54

ははははパフォーマンス

WRB APIを使用したチェック,2-58パラメータ・ブロック,2-3エレメント数の取得,2-47エレメントの検索,2-13エレメントの削除,2-11エレメントの取得,2-45エレメントの追加,2-5コピー,2-9作成,2-10先頭のエレメントの取得,2-15~内でエレメントの値を検索,2-14~内で繰り返し,2-59破棄,2-12

ままままマルチパート・フォーム・データ , 検索する,2-37

めめめめメッセージ・フォーマット,5-3

りりりりリスナー

WRB APIを使用した情報の取得,2-34リポジトリオープン,7-2クローズ,7-4~内のドキュメントに書き込む,7-13~内のドキュメントの属性を取得する,7-8~内のドキュメントの属性を設定する,7-11~内のドキュメントをオープンする,7-5~内のドキュメントをクローズする,7-6~内のドキュメントを更新する,7-14~内のドキュメントを破棄する,7-7~内のドキュメントを読み込む,7-12~内のドキュメントをリストする,7-15

索引索引索引索引 -4