| Oracle® Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド 11g リリース1 (11.1.1.7) B61409-07 |
|
![]() 前 |
![]() 次 |
この章では、ガイド付きビジネス・プロセスの作成時に定義したマイルストンを使用して、プロセス・インスタンスを表示するクライアント・アプリケーションの構築方法について説明します。
この章の内容は次のとおりです。
ガイド付きビジネス・プロセスは、ガイド付きビジネス・プロセスを表示および実行するADFアプリケーションを構築するのに使用できる事前定義済ADFタスクフローを提供します。
提供されたADFタスクフローが要件を満たさない場合、UIクライアント・アプリケーションが表示する情報を取得するために、ガイド付きビジネス・プロセスが提供する一連のAPIを使用できます。これらのAPIを使用すると、WebサービスおよびEnterprise Java Beansを使用して、マイルストンおよびタスクに関するデータを取得できます。
ガイド付きビジネス・プロセスのクライアント・アプリケーションは、ガイド付きビジネス・プロセスのタスク・フローのユーザー・インタフェースを提供します。任意の構成で、シンプルなADF JSPXページに、クライアント・アプリケーションを開発できます。通常、クライアント・アプリケーションには、アクティビティ・ガイド・ツリーを表示するリージョンと、ツリーから選択された特定のノードの詳細を表示する別のリージョンが含まれます。
これらの2つのリージョンを表示する方法として、JSPXページの左側に動的なリージョン、右側にヒューマン・タスク・フローを配置します。ただし、構成することはできます。
ガイド付きビジネス・プロセスのクライアント・アプリケーションを開発するには:
JDeveloperで新しいアプリケーションを作成します。
ViewControllerプロジェクトを右クリックし、「プロジェクト・プロパティ」を選択します。
「ライブラリとクラスパス」を選択します。
「JAR/ディレクトリの追加」をクリックします。
ファイル・ブラウザ・ダイアログ・ボックスが開きます。
<JDEV_HOME>/jdeveloper/soa/modulesの下にあるoracle.bpm.activityguide-ui.jarを選択します。
「選択」をクリックします。
次のコードを追加して、weblogic-application.xmlファイルにランタイム共有ライブラリoracle.soa.bpelとoracle.soa.workflow.wcの参照を追加します。
<library-ref> <library-name>oracle.soa.bpel</library-name></library-ref><library-ref> <library-name>oracle.soa.workflow.wc</library-name> </library-ref>
アクティビティ・ガイドを表示する新規JSFページ(.jspx)を作成します。
次のタスク・フローをJSFページ(.jspx)にドラッグ・アンド・ドロップします。
ag-tasktree-task-flow: アクティビティ・ガイド・ツリーを表示する場合
ag-humantask-task-flow: 個々のアクティビティ・ガイド・ノードを表示する場合
|
注意: タスク・フローをドラッグ・アンド・ドロップすると、そのタスク・フローのリージョンが自動的に作成されます。 |
アクティビティ・ガイド・プロパティを使用してファイルを作成します。
|
注意: 通常は、このファイルに |
アクティビティ・ガイド・プロパティの詳細は、28.7項「アクティビティ・ガイド・プロパティの構成」を参照してください。
アイデンティティ伝播を使用してアクティビティ・ガイドを保護する場合、WorkflowAdminUserプロパティおよびWorkflowAdminPasswordプロパティは必要ありません。
サマリー情報を持つタスク・フローのポップアップを有効にするには、アクティビティ・ガイド・プロパティ・ファイルに次のプロパティを指定します。
AGTasksPopupTaskFlowID: このパラメータを使用して、ADF動的リージョンにタスク・フロー・サマリーを表示します。関連するタスク・フローIDを入力します。
このパラメータを設定しない場合、OutputTextの値が、デフォルトのタスク・サマリーとして、ポップアップに表示されます。
無効なタスク・フローのリージョンIDを指定した場合、ガイド付きビジネス・プロセスでは、リージョンがレンダリングされず、サーバー・ログにメッセージが記録されます。
次のいずれかの方法を使用して、アクティビティ・ガイド・ツリーにリフレッシュ・ボタンを表示するように、アクティビティ・ガイドを構成します。
アクティビティ・ガイド・プロパティ・ファイルで、パラメータShowRefreshButtonを追加します。この値をtrueに設定すると、リフレッシュ・ボタンの表示が有効になり、falseまたはその他の値にすると、リフレッシュ・ボタンが無効になります。
アクティビティ・ガイド・ツリーのタスク・フローで、パラメータShowRefreshButtonを追加し、その値をtrueに設定します。このタスク・フロー・パラメータは、アクティビティ・ガイド・プロパティ・ファイルに設定されたパラメータの値をオーバーライドします。
ShowRefreshButtonパラメータの値がemptyまたはnullの場合、ファイルactivityguide.propertiesのプロパティShowRefreshButtonでは、リフレッシュ・ボタンを表示するかどうかを定義します。activityguide.propertiesファイルにこのプロパティの値を指定しない場合、リフレッシュ・ボタンはクライアントに表示されません。
例29-1は、ツリー・タスク・フローへのShowRefreshButtonパラメータの追加を示しています。
例29-1 ツリー・タスク・フローへのShowRefreshButtonパラメータの追加
<taskFlow id="dynamicRegion1"
taskFlowId="${backingBeanScope.dynamicLeft.dynamicTaskFlowId}"
xmlns="http://xmlns.oracle.com/adf/controller/binding" >
<parameters>
<parameter id="ShowRefreshButton" value="true”
xmlns="http://xmlns.oracle.com/adfm/uimodel"/>
</parameters>
</taskFlow>
activity.propertiesファイルの場所を含めるように、ファイルadfc-config.xmlを編集します。これは、activityguide.propertiesファイルへの絶対パスである必要があります。
adfc-config.xmlの例を例29-2に示します。
例29-2 activityguide.propertiesファイルへの参照を使用したadfc-config.xmlファイル
<managed-bean id="__10">
<managed-bean-name id="__12">agProps</managed-bean-name>
<managed-bean-class id="__11">oracle.bpel.activityguide.ui.beans.model.AGProperties</managed-bean-class>
<managed-bean-scope id="__9">session</managed-bean-scope>
<managed-property id="__15">
<property-name>agPropsFilePath</property-name>
<property-class>java.lang.String</property-class>
<value id="__14"><!-- relative path or absolute path should be given here-->/activityguide.properties</value>
</managed-property>
</managed-bean>
ワークフロー・サービス・クライアント構成ファイルを作成します。例を例29-3に示します。
例29-3 ワークフロー・サービス・クライアント構成ファイル
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<workflowServicesClientConfiguration xmlns="http://xmlns.oracle.com/bpel/services/client">
<server default="true" name="default">
<localClient>
<participateInClientTransaction>false</participateInClientTransaction>
</localClient>
<remoteClient>
<serverURL>t3://host:port</serverURL>
<initialContextFactory>weblogic.jndi.WLInitialContextFactory</initialContextFactory>
<participateInClientTransaction>false</participateInClientTransaction>
</remoteClient>
<soapClient>
<rootEndPointURL>http://host:port</rootEndPointURL>
<identityPropagation mode="dynamic" type="saml">
<policy-references>
<policy-reference enabled="true" category="security"
uri="oracle/wss10_saml_token_client_policy"/>
</policy-references>
</identityPropagation>
</soapClient>
</server>
ADF Webプロジェクトを使用したJDeveloperアプリケーションが作成されます。アプリケーションには次のものが含まれます。
1つがアクティビティ・ガイド・ツリー用、もう1つがアクティビティ・ガイド・ノード詳細用の、2つのリージョンを持つJSFページ。
activityguide.propertiesファイル。
ランタイムに、Oracle ADFアプリケーションでは、デザインタイムに開発されたガイド付きビジネス・プロセスが表示されます。共通のADFレイヤーのコンテキスト・イベント・メカニズムによって、対応するアクティビティ・ガイド・ツリーとアクティビティ・ガイド・ノード詳細の間の通信を処理します。
ガイド付きビジネス・プロセス・インスタンスを選択すると、アクティビティ・ガイド・ツリーにそのガイド付きビジネス・プロセス・インスタンスのアクティビティ・ガイド、マイルストンおよびタスクの情報が表示されます。
または、JSFページのactivityguide.propertiesファイルのAGInstanceIDプロパティを構成して、特定のガイド付きビジネス・プロセス・インスタンスの次の情報をレンダリングすることができます。
アクティビティ・ガイド
マイルストン
タスク
アクティビティ・ガイド・ツリーのマイルストン・ノードを選択すると、そのマイルストンの下のサブツリーが取得またはリフレッシュされます。
アクティビティ・ガイド・ツリーのタスク・ノードを選択すると、そのタスクの詳細タスク情報が表示されます。
ガイド付きビジネス・プロセスのクライアント・アプリケーションを保護するには、適切な資格証明を持つユーザーのみが、ガイド付きビジネス・プロセスで説明されたタスクを完了できることを確認します。セキュリティ機能には、認証、認可およびポリシー施行があります。
ガイド付きビジネス・プロセス・クライアント・アプリケーションをローカライズすると、定義したすべてのサポート言語でこのクライアントを実行できます。
ガイド付きビジネス・プロセス・アプリケーションをローカライズする場合は、ガイド付きビジネス・プロセスの設計時に次のコンポーネントをローカライズする必要があります。
AGのタイトル
AGの説明
マイルストンのタイトル
マイルストンの説明
ブロックされたタスクの説明テキスト
ガイド付きビジネス・プロセスは、ユーザー・インタフェースの一部である文字列(表示タイトル、説明など)を自動的に翻訳します。ガイド付きビジネス・プロセスは、次のロケールをサポートします。
フランス語
ドイツ語
イタリア語
スペイン語
ブラジル語
日本語
韓国語
簡体字中国語
繁体字中国語
アラビア語
チェコ語
デンマーク語
オランダ語
フィンランド語
ギリシャ語
ヘブライ語
ハンガリー語
ノルウェー語
ポーランド語
ポルトガル語
ルーマニア語
ロシア語
スロバキア語
スウェーデン語
タイ語
トルコ語
ガイド付きビジネス・プロセスのローカライズ方法の詳細は、29.4.1項「ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールの構成方法」を参照してください。
ガイド付きビジネス・プロセス・アプリケーションで他のロケールをサポートするように構成するには、ガイド付きビジネス・プロセスの開発時に、そのロケールに必要なバンドルが提供されていることを確認します。
ガイド付きビジネス・プロセス・クライアント・アプリケーションでサポートされるロケールを構成するには:
Oracle JDeveloperでクライアント・アプリケーションを開きます。
jspxクライアント・ページを開きます。
「リンク元ビュー」を選択し、次のコードを使用してロケールを変更します。
<f:view locale= #{view.locale}>
Project_Root /public_html/WEB-INFの下にあるfaces-config.xmlファイルを編集します。
エディタ・ウィンドウで「概要」タブをクリックします。
エディタ・ウィンドウで「アプリケーション」を選択します。
「ロケール構成」領域で、「新規」をクリックして、サポートされるロケールを追加するプロパティ・インスペクタを開きます。
サポートされるロケールを追加します。
例29-4は、サポートされる一連のロケールを追加した後のfaces-config.xmlファイルを示しています。
例29-4 faces-config.xmlファイル
<locale-config> <default-locale>en</default-locale> <supported-locale>ar</supported-locale> <supported-locale>ca</supported-locale> <supported-locale>cs</supported-locale> <supported-locale>da</supported-locale> <supported-locale>de</supported-locale> <supported-locale>zh_CN</supported-locale> </locale-config>
ブラウザのロケールを、サポートされるロケールに設定します。
クライアント・ページを実行します。
ガイド付きビジネス・プロセスでは、使用可能なマイルストンおよびマイルストンを構成するタスクに関する詳細を取得できる一連のAPIが提供されます。事前定義されたアクティビティ・ガイドADFタスクフローが要件を満たさない場合、これらのAPIを使用して、クライアント・アプリケーションに表示する情報を取得できます。
このAPIは、ガイド付きビジネス・プロセスを表示するアプリケーションの次のユーザー・ナビゲーション・シナリオをサポートするように設計されます。
フィルタを使用して、ガイド付きビジネス・プロセス・インスタンスのリストを表示します。使用可能なフィルタは次のとおりです。
MY: ユーザーに割り当てられたアクティブなタスクを含むガイド付きビジネス・プロセス・インスタンス。
REPORTEES: 現在のユーザーへの報告先に割り当てられたアクティブなタスクを含むガイド付きビジネス・プロセス・インスタンス。
PREVIOUS: ユーザーに割り当てられた完了済タスクを含むガイド付きビジネス・プロセス・インスタンス、および、特定のタスクを別のユーザーに再割当てするインスタンス。
ADMIN: ガイド付きビジネス・プロセス管理者に表示されるガイド付きビジネス・プロセス・インスタンス。アクティブなインスタンスは、すべてのユーザーに割り当てることができます。
|
注意: BPMAGAdminロールは、管理者ロールが割り当てられたユーザーにマップされます。このロールによって、ユーザーは、完了済インスタンス、アクティブなインスタンスおよびエラーのあるインスタンスなど、サーバーで使用可能なすべてのガイド付きビジネス・プロセス・インスタンスを問合せできます。$DOMAIN_HOME/config/fmwconfig/system-jazn-data.xmlにある構成ファイルには、このロールの定義が含まれています。 |
|
注意: ガイド付きビジネス・プロセスAPIを使用すると、タスクIDを指定して、詳細タスク情報を取得できますが、タスク情報は取得されません。これを行うには、ワークフロー・サービスAPIなど、別のAPIが必要です。 ワークフロー・サービスの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』の「ヒューマン・ワークフロー・サービスの概要」を参照してください。 |
表29-1 ガイド付きビジネス・プロセス問合せサービスAPI
| メソッド | 説明 |
|---|---|
|
|
文字列パラメータ
マイルストンおよびタスクはアクティビティ・ガイド・インスタンス・ビューに表示されないので、不要なパフォーマンスのオーバーヘッドを避けるために、 |
|
|
アクティビティ・ガイド・インスタンスIDによって指定された 戻された 文字列パラメータ
文字列パラメータ
|
|
|
アクティビティ・ガイド・インスタンス内のマイルストンの表示情報を戻します。 戻された 文字列パラメータ
文字列パラメータ
|
APIによって、カスタム・アプリケーション内からガイド付きビジネス・プロセス問合せおよびメタデータ・サービスにアクセスできます。
次の例は、ガイド付きビジネス・プロセスのランタイム・サービスにアクセスするためのJava APIの使用を示しています。
例29-5 EJBを使用したガイド付きビジネス・プロセスのランタイム・サービスへのアクセス
package client;
import com.oracle.bpel.activityguide.metadata.definition.model.AGDefinition;
import java.util.ArrayList;
import java.util.List;
import oracle.bpel.services.workflow.IWorkflowConstants;
import oracle.bpel.services.workflow.task.model.Task;
import oracle.bpel.services.workflow.verification.IWorkflowContext;
import oracle.bpel.services.workflow.client.IWorkflowServiceClient;
import oracle.bpel.services.workflow.client.IWorkflowServiceClientConstants;
import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory;
import oracle.bpel.services.workflow.query.ITaskQueryService;
import oracle.bpel.services.workflow.query.impl.TaskQueryService;
import oracle.bpel.services.workflow.client.WorkflowServiceClientContext;
import oracle.bpel.services.workflow.metadata.config.ResourceBundleInfo;
import oracle.bpel.services.workflow.activityguide.query.IAGQueryService;
import oracle.bpel.services.workflow.activityguide.query.impl.AGQueryService;
import oracle.bpel.services.workflow.activityguide.query.model.AGDisplayInfo;
import oracle.bpel.services.workflow.activityguide.query.model.MilestoneDisplayInfo;
import oracle.bpel.services.workflow.activityguide.metadata.IAGMetadataService;
import oracle.bpel.services.workflow.activityguide.metadata.impl.AGMetadataService;
import sun.security.util.Password;
public class AGServiceSampleCode {
private static String USERNAME = "jcooper";
private static String PASSWORD = "welcome1";
private static IWorkflowServiceClient wfSvcClient;
private static IWorkflowContext sJCooperCtx;
public static void main(String[] args)
{
try {
testSetUp();
// GetAGDefinition API requires an AG instance as input, which is not easily accessible in customer's env.
// As a result, the sample code for invoking this API is not provided.
//testGetAGDefinition();
testGetAGDefinitionById();
testGetAGResourceBundleInfo();
testQueryAGDisplayInfos();
testQueryAGDisplayInfoDetailsById();
testQueryAGMilestoneDisplayInfo();
} catch (Exception e) {
e.printStackTrace();
}
}
private static void testSetUp()
throws Exception
{
wfSvcClient =
WorkflowServiceClientFactory.getWorkflowServiceClient(WorkflowServiceClientFactory.REMOTE_CLIENT);
sJCooperCtx =
wfSvcClient.getTaskQueryService().authenticate(USERNAME, PASSWORD, null);
}
private static void testGetAGDefinitionById()
throws Exception
{
String agDefinitionId = "HelpDeskRequestSCAApp/HelpDeskRequestComposite!1.0*2007-10-22_13-32-50_536//HelpDeskRequestProcess//HelpDeskRequestProcess.ag"; // Need to supply a valid AG definition id here
AGDefinition agDefinition =
wfSvcClient.getAGMetadataService().getAGDefinitionById (sJCooperCtx, agDefinitionId);
if (agDefinition != null)
{
System.out.println("ag def obtained");
System.out.println("ag def name: " + agDefinition.getName());
System.out.println("ag def milestone display mode: " + agDefinition.getMilestoneDisplayMode());
}
}
private static void testGetAGResourceBundleInfo()
throws Exception
{
String agDefinitionId = "HelpDeskRequestSCAApp/HelpDeskRequestComposite!1.0*2007-10-22_13-32-50_536//HelpDeskRequestProcess//HelpDeskRequestProcess.ag"; // Need to supply a valid AG definition id here
ResourceBundleInfo resourceBundleInfo = wfSvcClient.getAGMetadataService().getResourceBundleInfo(sJCooperCtx, agDefinitionId, sJCooperCtx.getLocale());
System.out.println("bundle name: " + resourceBundleInfo.getName());
}
private static void testQueryAGDisplayInfos()
throws Exception
{
List agQueryColumns = new ArrayList();
agQueryColumns.add("MILESTONE_STATE");
agQueryColumns.add("DEFINITION_ID");
// Query for all AG instances belonging to user jcooper
List agDisplayInfoList =
wfSvcClient.getAGQueryService().queryAGDisplayInfos(sJCooperCtx,
agQueryColumns,
IAGQueryService.AGAssignmentFilter.MY,
null, //agPredicate,
null, //ordering,
0,
0);
System.out.println("ag display info list size:" + agDisplayInfoList.size());
if ( agDisplayInfoList.size() > 0 )
{
AGDisplayInfo agDisplayInfo = (AGDisplayInfo) agDisplayInfoList.get(0);
System.out.println("AG title:" + agDisplayInfo.getTitle());
System.out.println("milestone display info list size:" + agDisplayInfo.getMilestoneDisplayInfo().size());
for (int i=0; i< agDisplayInfo.getMilestoneDisplayInfo().size(); i++)
{
System.out.println("i = " + i + " milestone display info:" + ((MilestoneDisplayInfo) agDisplayInfo.getMilestoneDisplayInfo().get(i)).getMilestoneInstance().getName());
}
}
}
private static void testQueryAGDisplayInfoDetailsById()
throws Exception
{
long cikey = 1; // Need to supply a valid AG cikey here
List taskQueryColumns = new ArrayList();
taskQueryColumns.add("TASKID");
taskQueryColumns.add("TITLE");
taskQueryColumns.add("OUTCOME");
AGDisplayInfo agDisplayInfo =
wfSvcClient.getAGQueryService().getAGDisplayInfoDetailsById (sJCooperCtx, cikey, taskQueryColumns);
System.out.println("AG display info status:" + agDisplayInfo.getAGInstanceInfo().getStatus());
System.out.println("AG display info bpel status:" + agDisplayInfo.getAGInstanceInfo().getBpelStatus());
}
private static void testQueryAGMilestoneDisplayInfo()
throws Exception
{
long cikey = 1; // Need to supply a valid AG cikey here
String milestoneName = "ApprovePricing"; // Need to supply a valid AG milestone name here
List taskQueryColumns = new ArrayList();
taskQueryColumns.add("TASKID");
taskQueryColumns.add("TITLE");
taskQueryColumns.add("OUTCOME");
MilestoneDisplayInfo milestoneDisplayInfo = null;
milestoneDisplayInfo =
wfSvcClient.getAGQueryService().getMilestoneDisplayInfo (sJCooperCtx, cikey, milestoneName, taskQueryColumns);
System.out.println("milestone display info name:" + milestoneDisplayInfo.getMilestoneInstance().getName());
System.out.println("milestone display info title:" + milestoneDisplayInfo.getTitle());
System.out.println("milestone display info task list size:" + milestoneDisplayInfo.getTask().size());
}
}
EJBおよびWebサービスAPIの詳細は、Javadocを参照してください。
ガイド付きビジネス・プロセスは、ログ・ファイルを使用して、実行する様々な操作に関する情報を格納します。このファイルには、アプリケーションの動作を追跡するログ・メッセージ、およびアプリケーションの実行中に発生する可能性のあるエラーが含まれます。
このログ・ファイルの情報を使用して、アプリケーションの予期しない動作の原因を見つけることができます。
ログ・メッセージの重要度は、メッセージのレベルに応じて異なります。デバッグ目的で使用されるメッセージのレベルは、警告またはエラーを含むメッセージのレベルと異なります。
ガイド付きビジネス・プロセスのロギングを構成して、必要に応じて、あるレベルのメッセージのみを記録できます。
ガイド付きビジネス・プロセスを構成して、クライアント側にログ・ファイルを生成できます。
クライアント側でロギングを有効化するには:
ディレクトリ<DOMAIN_HOME>/config/fmwconfig/servers/Server Nameで、logging.xmlファイルを検索します。
logging.xmlファイルを編集のために開きます。
<loggers>要素に次のエントリを追加します。
<logger name="oracle.bpel.activityguide.ui" level="NOTIFICATION:1" useParentHandlers='false'>
<handler name="odl-handler"/>
</logger>
変更内容を保存します。
WebLogic Serverを再起動します。
ガイド付きビジネス・プロセスを構成して、サーバー側にログを生成できます。
サーバー側でロギングを有効化するには:
ディレクトリ<DOMAIN_HOME>/config/fmwconfig/servers/Server Nameで、logging.xmlファイルを検索します。
logging.xmlファイルを編集のために開きます。
<loggers>要素に次のエントリを追加します。
<logger name="oracle.bpm.services.activityguide.query" level="NOTIFICATION:1" useParentHandlers='true'>
変更内容を保存します。
WebLogic Serverを再起動します。
ログ・メッセージには、問題の重大度を識別するレベルが含まれています。
表28-3は、使用可能なログ・レベルを示しています。重大度の列では、ある重大度を識別するのに使用される共通の用語を説明しています。ログ・レベル値の列では、logging.xmlファイルで使用する必要がある値を指定しています。
表29-2 ログ・レベル値
| 重大度 | ログ・レベル値 | 説明 |
|---|---|---|
|
致命的 |
INCIDENT_ERROR:1 |
原因が不明の重大な問題を示しています。ユーザーは自分で問題を解決できないため、Oracleサポートに連絡する必要があります。 |
|
重大 |
ERROR:1 |
システム管理者がすぐに対処する必要がある重大な問題を示しています。 |
|
警告 |
WARNING:1 |
潜在的な問題を示しています。システム管理者は、これらのログ・メッセージを確認する必要があります。 |
|
情報 |
NOTIFICATION:1 |
主要サブコンポーネントや機能のアクティブ化または非アクティブ化などの、主要なライフサイクル・イベントを示しています。 |
|
構成 |
NOTIFICATION:16 |
下位レベルで発生した標準イベントを指定します。 |
|
普通 |
TRACE:1 |
パブリックAPIのエントリ・ポイント/終了ポイントなどの、製品のエンド・ユーザーにとって意味のあるイベントのトレースまたはデバッグ情報を示しています。 |
|
詳細 |
TRACE:16 |
Oracleサポートが特定のサブシステムでの問題を診断するのに役立つ可能性のある、詳細なトレースまたはデバッグ情報を指定します。 |
ガイド付きビジネス・プロセスのロギングを構成して、ガイド付きビジネス・プロセスのログに格納された情報の詳細のレベルを指定できます。
ログ・レベルを設定するには、logging.xmlファイルのログ出力要素で、属性レベルの値を変更する必要があります。
ログ・レベルをある重大度に設定すると、それより高い重大度に対応するすべてのメッセージも格納されます。たとえば、ログ・レベルを「重大」に設定した場合、重大度が「致命的」のログ・メッセージも記録されます。
ログ・メッセージは、ファイル<DOMAIN HOME>/servers/<Server Name>/logs/Server Name-diagnostic.logに格納されています。
テキスト・エディタを使用して、ログ・メッセージを含むファイルを表示できます。
ログ・メッセージには、ガイド付きビジネス・プロセス・アプリケーションの問題を識別するのに役立つ情報が含まれています。
表28-3は、ログ・メッセージを構成する項目を説明しています。
表29-3 ログ・メッセージ項目
| ログ・メッセージ項目 | 説明 |
|---|---|
|
日付と時間 |
このログ・メッセージが生成された日付および時間を指定します。 |
|
メッセージ・タイプ |
メッセージの重大度を指定します。 |
|
実行コンテキストID (ECID) |
元のコンポーネントが実行中のスレッドに対応するグローバル一意識別子および順序番号。これを使用して、同一のスレッドに含まれる可能性がある複数のコンポーネントからのメッセージを関連付けることができます。 |
|
アプリケーション名 |
ログ・メッセージを生成したアプリケーションの名前を指定します。 |
|
クラス・パッケージ名 |
ログ・メッセージを生成したクラスのパッケージを指定します。 |
|
メッセージID |
メッセージを一意に識別する短い識別子を指定します。 |
|
メッセージ・テキスト |
イベントを説明します。このメッセージはローカライズされているため、システムのロケールに対応した言語で表示されます。 |
ログ・ファイルを読む際には、メッセージ・テキストを見つける必要があります。このテキストは、何が発生したかを説明しています。メッセージ・タイプは、問題がどの程度重大かを識別するのに役立ちます。様々なメッセージ・タイプの詳細は、表29-2を参照してください。
ログ・メッセージの日付と時間を使用して、問題の原因となるアクションを特定できます。
|
注意: Oracleサポートに連絡する前に、メッセージIDおよび実行コンテキストIDをOracleサポートに提供できることを確認してください。 |
例29-6 ログ・メッセージの例
DefaultServer-diagnostic.log:[2009-07-10T17:39:35.220-07:00] [DefaultServer] [NOTIFICATION] [AGU-12605] [oracle.bpel.activityguide.ui.beans] [tid: [ACTIVE].ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: jstein] [ecid: 0000I9bG2R3DScQ6ube9UH1ALxd1000007,0] [APP: AGNonUIshellApp#V2.0] [arg: jstein] Setting user, jstein as the loginUserId in server interfacing bean.[[
例28-12は、loginUserIdの変更に関する情報を含む通知ログ・メッセージを示しています。この例での各ログ・メッセージ項目は、次のとおりです。
日付と時間: 2009-07-10T17:39:35.220-07:00
メッセージ・タイプ: NOTIFICATION
実行コンテキストID: ecid: 0000I9bG2R3DScQ6ube9UH1ALxd1000007,0
アプリケーション名: APP: AGNonUIshellApp#V2.0
クラス・パッケージ名: oracle.bpel.activityguide.ui.beans
メッセージID: AGU-12605
メッセージ・テキスト: Setting user, jstein as the loginUserId in server interfacing bean.