Workshop for WebLogic 用 Oracle Service Bus プラグインの使用

     前  次    目次     
ここから内容

タスク

このセクションでは、Workshop for WebLogic 用の Oracle Service Bus プラグインでのタスクの実行方法を示します。

プロジェクト、フォルダ、リソース、およびコンフィグレーションでの作業

このセクションでは、以下のタスクの実行方法を示します。

他の種類のリソースの操作については、次の情報を参照してください。

リソースの編集

リソースは、組み込みのエディタを使用して編集します。たとえば、プロキシ サービスを編集するには、プロジェクト エクスプローラでサービスの名前をダブルクリックします。

リソース ファイルをテキスト ファイルや XML ファイルとして手動で編集しないでください。予測不可能な動作が発生するおそれがあります。リソースの以下の種類は手動で編集しないでください。

Oracle Service Bus プロジェクトおよびフォルダのクローン作成

  1. プロジェクト エクスプローラで、クローンを作成する Oracle Service Bus プロジェクトまたはフォルダを右クリックします。
  2. メニューから [Oracle Service Bus|クローン] を選択して、[クローン対象の選択] ダイアログを表示します。適切な情報を入力します。

Oracle Service Bus コンフィグレーション プロジェクトの作成

Oracle Service Bus パースペクティブで [ファイル|新規|Oracle Service Bus コンフィグレーション プロジェクト] を選択して、[新しい Oracle Service Bus コンフィグレーション プロジェクト] ウィザードを表示します。 適切な情報を入力します。

Oracle Service Bus プロジェクトの作成

Oracle Service Bus パースペクティブで [ファイル|新規|Oracle Service Bus プロジェクト] を選択して、[新しい Oracle Service Bus プロジェクト] ウィザードを表示します。適切な情報を入力します。

注意 : Oracle Service Bus プロジェクトは、Oracle Service Bus コンフィグレーション プロジェクトでのみ作成できます。

カスタム リソースの作成

Oracle Service Bus パースペクティブで [ファイル|新規|カスタム リソース] を選択して、 [新しいカスタム リソース] ウィザードを表示します。適切な情報を入力します。

注意 : カスタム リソースは、Oracle Service Bus プロジェクトでのみ作成できます。

JNDI プロバイダ リソースの作成

Oracle Service Bus パースペクティブで [ファイル|新規|JNDI プロバイダ] を選択し、 [新しい JNDI プロバイダ リソース] ウィザードを表示します。適切な情報を入力します。

注意 : JNDI プロバイダ リソースは、Oracle Service Bus コンフィグレーション プロジェクトでのみ作成できます。

プロキシ サーバ リソースの作成

Oracle Service Bus パースペクティブで [ファイル|新規|プロキシ サーバ] を選択して、[新しいプロキシ サーバ リソース] ウィザードを表示します。「プロキシ サーバ」で説明されている情報を必要に応じて入力します。

注意 : プロキシ サーバ リソースは、Oracle Service Bus コンフィグレーション プロジェクトでのみ作成できます。

メッセージ フォーマット ファイルの作成

Oracle Service Bus パースペクティブで [ファイル|新規|MFL] を選択して、新しいメッセージ フォーマット ファイルを表示します。 適切な情報を入力します。

注意 : メッセージ フォーマット ファイルは、Oracle Service Bus プロジェクトでのみ作成できます。

JNDI プロバイダ リソースの編集

  1. プロジェクト エクスプローラで、編集する JNDI プロバイダ リソースを含む Oracle Service Bus コンフィグレーション プロジェクトを見つけます。
  2. JNDI プロバイダの名前をダブル クリックして、JNDI プロバイダ エディタを表示します。適切に編集を行います。

プロキシ サーバ リソースの編集

  1. プロジェクト エクスプローラで、編集するプロキシ サーバ リソースを含む Oracle Service Bus コンフィグレーション プロジェクトを見つけます。
  2. プロキシ サーバの名前をダブルクリックして、プロキシ サーバ エディタを表示します。「プロキシ サーバ」で説明されている情報を必要に応じて編集します。

リソースのエクスポート

Oracle Service Bus パースペクティブで [ファイル|エクスポート] を選択して [エクスポート] ウィザードを表示します。以下を参照してください。

コマンド ラインやスクリプトを使用した Oracle Service Bus コンフィグレーションのエクスポート

この節では、Oracle Service Bus コンフィグレーションをエクスポートするためのスクリプトおよびコマンド ライン オプションについて説明します。

始める前に

始める前に、以下の前提条件とガイドラインを参照してください。

Ant を使用したコンフィグレーションのエクスポート

Ant ビルド ファイルを使用して Oracle Service Bus コンフィグレーションをエクスポートできます。以下にプロパティ ファイルを持つビルド ファイルのサンプルを示します。

Ant ビルド ファイルの例

<project name="ConfigExport">
<property file="./build.properties"/>
<property name="eclipse.home"
value="${bea.home}/tools/eclipse_pkgs/2.0/eclipse_3.3.2/eclipse"/>
<property name="weblogic.home" value= "${bea.home}/wlserver_10.3"/>
<property name="metadata.dir" value="${workspace.dir}/.metadata"/>
    <target name="export">
<available file="${metadata.dir}" type="dir"
property="metadata.dir.exists"/>
        <java dir="${eclipse.home}"
jar="${eclipse.home}/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar"
fork="true"
failonerror="true"
maxmemory="768m">
<arg line="-data ${workspace.dir}"/>
<arg line="-application com.bea.alsb.core.ConfigExport"/>
<arg line="-configProject ${config.project}"/>
<arg line="-configJar ${config.jar}"/>
<sysproperty key="weblogic.home" value="${weblogic.home}"/>
</java>
		<antcall target="deleteMetadata"/>
</target>
	<target name="deleteMetadata" unless="metadata.dir.exists">
<delete failonerror="false" includeemptydirs="true"
dir="${metadata.dir}"/>
</target>
</project>

ビルド プロパティの例

bea.home=c:/bea
workspace.dir=c:/bea/user_projects/workspaces/default
config.project="OSB Configuration"
config.jar=c:/sbconfig.jar

「ant export」を実行すると、「OSB Configuration」プロジェクトがデフォルトのワークスペースから c:\sbconfig.jar にエクスポートされます。

WLST を使用したコンフィグレーションのエクスポート

WebLogic Scripting Tool (WLST) を使用して Oracle Service Bus コンフィグレーションをエクスポートできます。以下に、WLST エクスポートで使用されるサンプル ファイルを示します。Ant ビルド ファイルと Python スクリプトでは、プロパティ ファイルとカスタマイズ ファイルを使用します。

Ant ビルド ファイルの例

また、次に示す Ant ビルド ファイルを使用して、Oracle Service Bus コンフィグレーションをインポートすることもできます。

<project default="export">
  <property environment="env"/>
<property name="domain.export.script" value="export.py"/>
<property name="domain.import.script" value="import.py"/>
<property name="export.config.file" value="export.properties"/>
<property name="import.config.file" value="import.properties"/>
<property name="build" value="build"/>
<property name="dist" value="dist"/>
<property name="bea.home" value="${env.BEA_HOME}"/>
    <path id="class.path">
<pathelement
path="${bea.home}/wlserver_10.3/server/lib/weblogic.jar"/>
<pathelement path="${bea.home}/osb_10.3/lib/sb-kernel-api.jar"/>
<pathelement
path="${bea.home}/modules/com.bea.common.configfwk_1.2.0.0.jar"/>
</path>
    <taskdef name="wlst"
classname="weblogic.ant.taskdefs.management.WLSTTask"/>
    <target name="export">
<echo message="exportscript: ${domain.export.script}"/>
<java classname="weblogic.WLST" fork="true">
<arg line="${domain.export.script} ${export.config.file}"/>
<classpath refid="class.path"/>
</java>
</target>
  <target name="import">
<echo message="importscript: ${domain.import.script}"/>
<java classname="weblogic.WLST" fork="true">
<arg line="${domain.import.script} ${import.config.file}"/>
<classpath refid="class.path"/>
</java>
</target>
<target name="clean">
<delete dir="${dist}"/>
<delete dir="${build}"/>
<mkdir dir="${dist}"/>
<mkdir dir="${build}"/>
</target>
</project>

export.py Python の例

from java.io import FileInputStream
from java.io import FileOutputStream
from java.util import ArrayList
from java.util import Collections
from com.bea.wli.sb.util import EnvValueTypes
from com.bea.wli.config.env import EnvValueQuery;
from com.bea.wli.config import Ref
from com.bea.wli.config.customization import Customization
from com.bea.wli.config.customization import FindAndReplaceCustomization
import sys
#====================================================================
# コンフィグレーション ファイルからプロパティをロードするユーティリティ機能
#=========================================================================
def exportAll(exportConfigFile):
try:
print "Loading export config from :", exportConfigFile
exportConfigProp = loadProps(exportConfigFile)
adminUrl = exportConfigProp.get("adminUrl")
exportUser = exportConfigProp.get("exportUser")
exportPasswd = exportConfigProp.get("exportPassword")
        exportJar = exportConfigProp.get("exportJar")
customFile = exportConfigProp.get("customizationFile")
        passphrase = exportConfigProp.get("passphrase")
project = exportConfigProp.get("project")
        connectToServer(exportUser, exportPasswd, adminUrl)
        ALSBConfigurationMBean = findService("ALSBConfiguration", "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")
print "ALSBConfiguration MBean found"
        print project
if project == None :
ref = Ref.DOMAIN
collection = Collections.singleton(ref)
if passphrase == None :
print "Export the config"
theBytes = ALSBConfigurationMBean.export(collection, true,
None)
else :
print "Export and encrypt the config"
theBytes = ALSBConfigurationMBean.export(collection, true,
passphrase)
else :
ref = Ref.makeProjectRef(project);
print "Export the project", project
collection = Collections.singleton(ref)
theBytes = ALSBConfigurationMBean.exportProjects(collection,
passphrase)
        aFile = File(exportJar)
out = FileOutputStream(aFile)
out.write(theBytes)
out.close()
print "ALSB Configuration file: "+ exportJar + " has been exported"
        if customFile != None:
print collection
query = EnvValueQuery(None,
Collections.singleton(EnvValueTypes.WORK_MANAGER),
collection, false, None, false)
customEnv = FindAndReplaceCustomization('Set the right Work
Manager', query, 'Production System Work Manager')
print 'EnvValueCustomization created'
customList = ArrayList()
customList.add(customEnv)
print customList
aFile = File(customFile)
out = FileOutputStream(aFile)
Customization.toXML(customList, out)
out.close()
        print "ALSB Dummy Customization file: "+ customFile + " has been
created"
except:
raise
#====================================================================
# コンフィグレーション ファイルからプロパティをロードするユーティリティ機能
#=========================================================================
def loadProps(configPropFile):
propInputStream = FileInputStream(configPropFile)
configProps = Properties()
configProps.load(propInputStream)
return configProps
#====================================================================
# 管理サーバに接続する
#=========================================================================
def connectToServer(username, password, url):
connect(username, password, url)
domainRuntime()
# EXPORT スクリプト init
try:
exportAll(sys.argv[1])
except:
print "Unexpected error: ", sys.exc_info()[0]
dumpStack()
raise

export.properties の例

##################################################################
# OSB 管理セキュリティ コンフィグレーション #
##################################################################
adminUrl=t3://localhost:7021
exportUser=weblogic
exportPassword=weblogic
##################################################################
# エクスポートする OSB JAR #
##################################################################
exportJar=export.jar
##################################################################
# 省略可能なパスフレーズとプロジェクト名。 #
# プロジェクトを指定する場合、スクリプトによってプロジェクトに #
# 含まれるリソースがすべてエクスポートされる。 プロジェクトを指定しない場合、 #
# スクリプトによってコンフィグレーション全体がエクスポートされる。 #
##################################################################
passphrase=osb
project=default
##################################################################
# ダミー カスタマイズ ファイルの作成 (省略可能) #
##################################################################
customizationFile=customize.xml

customize.xml カスタマイズ ファイルの例

<?xml version="1.0" encoding="UTF-8"?>
<cus:Customizations xmlns:cus="http://www.bea.com/wli/config/customizations" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="http://www.bea.com/wli/config/xmltypes">
<cus:customization xsi:type="cus:FindAndReplaceCustomizationType">
<cus:description>Set the right Work Manager</cus:description>
<cus:query>
<xt:envValueTypes>Work Manager</xt:envValueTypes>
<xt:refsToSearch xsi:type="xt:LocationRefType">
<xt:type>Project</xt:type>
<xt:path>default</xt:path>
</xt:refsToSearch>
<xt:includeOnlyModifiedResources>false</xt:includeOnlyModifiedResources>
<xt:searchString xsi:nil="true"/>
<xt:isCompleteMatch>false</xt:isCompleteMatch>
</cus:query>
<cus:replacement>Production System Work Manager</cus:replacement>
</cus:customization>
</cus:Customizations>
コマンド ラインを使用したコンフィグレーションのエクスポート

Oracle Service Bus では、以下のコマンド ライン引数を使用してコンフィグレーションおよび起動できる ConfigExport クラスが提供されます。コマンド ライン エクスポートは、より高い柔軟性を必要とする上級ユーザを対象とします。

java -Xms384m -Xmx768m -Dweblogic.home=<weblogic.dir> 
-jar <eclipse.dir>/plugins/org.eclipse.equinox.launcher_<launcher.version>.jar
-data <workspace.dir> -application com.bea.alsb.core.ConfigExport
>-configProject <project.name> -configJar <config.jar>

ここで、各項目には以下のものを指定します。

以下に、コマンド ラインから Oracle Service Bus コンフィグレーションをエクスポートするサンプルを示します。

java -Xms384m -Xmx768m -Dweblogic.home=c:/bea/wlserver_10.3 
-jar c:/bea/tools/eclipse_pkgs/2.0/eclipse_3.3.2/eclipse/plugins/org.eclipse.
equinox.launcher_1.0.1.R33x_v20080118.jar
-data c:/bea/user_projects/workspaces/default
-application com.bea.alsb.core.ConfigExport -configProject “OSB Configuration” -configJar c:/sbconfig.jar

有効な WSDL の生成

  1. プロジェクト エクスプローラで、有効な WSDL の生成元とするプロキシ サービスまたはビジネス サービスを見つけます。
  2. サービスの名前を右クリックして、メニューから [Oracle Service Bus|有効な WSDL の生成] を選択します。
  3. 保存場所を選択して、ファイルを保存します。

JAR 依存関係の変更

  1. プロジェクト エクスプローラで、依存関係を修正する JAR ファイルを見つけます。
  2. ファイルの名前を右クリックして、メニューから [Oracle Service Bus|Jar 依存関係の変更] を選択します。
  3. [Jar 依存関係の変更] ダイアログで変更を行います。

リソースのインポート

Oracle Service Bus パースペクティブで [ファイル|インポート] を選択して [インポート] ウィザードを表示します。以下を参照してください。

コマンド ラインやスクリプトを使用した Oracle Service Bus コンフィグレーションのインポート

スクリプトやコマンド ライン オプションを使用して Oracle Service Bus コンフィグレーションをインポートできます。インポートに関するガイドラインについては、「Ant を使用したコンフィグレーションのエクスポート」と「コマンド ラインを使用したコンフィグレーションのエクスポート」の例を参照してください。

以下の節では、WebLogic Scripting Tool (WLST) を使用して Oracle Service Bus コンフィグレーションをインポートする例を示します。

WLST を使用したコンフィグレーションのインポート

WebLogic Scripting Tool (WLST) を使用して Oracle Service Bus コンフィグレーションをインポートできます。以下に、WLST インポートで使用されるサンプル ファイルを示します。Ant ビルド ファイルおよび Python スクリプトでは、プロパティ ファイルとカスタマイズ ファイルを使用します。

Ant ビルド ファイルの例

WLST を使用したコンフィグレーションのエクスポート」と同じ、Ant ビルドファイル例を使用します。

import.py Python の例

from java.util import HashMap
from java.util import HashSet
from java.util import ArrayList
from java.io import FileInputStream

from com.bea.wli.sb.util import Refs
from com.bea.wli.config.customization import Customization
from com.bea.wli.sb.management.importexport import ALSBImportOperation

import sys

#====================================================================
# プロジェクト コンフィグレーションとリソースを ALSB ドメインにデプロイ
# するエントリ関数
#====================================================================

def importToALSBDomain(importConfigFile):
try:
SessionMBean = None
print 'Loading Deployment config from :', importConfigFile
exportConfigProp = loadProps(importConfigFile)
adminUrl = exportConfigProp.get("adminUrl")
importUser = exportConfigProp.get("importUser")
importPassword = exportConfigProp.get("importPassword")

importJar = exportConfigProp.get("importJar")
customFile = exportConfigProp.get("customizationFile")

passphrase = exportConfigProp.get("passphrase")
project = exportConfigProp.get("project")

connectToServer(importUser, importPassword, adminUrl)

print 'Attempting to import :', importJar, "on ALSB Admin Server listening on :", adminUrl

theBytes = readBinaryFile(importJar)
print 'Read file', importJar
sessionName = createSessionName()
print 'Created session', sessionName
SessionMBean = getSessionManagementMBean(sessionName)
print 'SessionMBean started session'
ALSBConfigurationMBean = findService(String("ALSBConfiguration.").concat(sessionName), "com.bea.wli.sb.management.configuration.ALSBConfigurationMBean")
print "ALSBConfiguration MBean found", ALSBConfigurationMBean
ALSBConfigurationMBean.uploadJarFile(theBytes)
print 'Jar Uploaded'

if project == None:
print 'No project specified, additive deployment performed'
alsbJarInfo = ALSBConfigurationMBean.getImportJarInfo()
alsbImportPlan = alsbJarInfo.getDefaultImportPlan()
alsbImportPlan.setPassphrase(passphrase)
alsbImportPlan.setPreserveExistingEnvValues(true)
importResult = ALSBConfigurationMBean.importUploaded(alsbImportPlan)
SessionMBean.activateSession(sessionName, "Complete test import with customization using wlst")
else:
print 'ALSB project', project, 'will get overlaid'
alsbJarInfo = ALSBConfigurationMBean.getImportJarInfo()
alsbImportPlan = alsbJarInfo.getDefaultImportPlan()
alsbImportPlan.setPassphrase(passphrase)
operationMap=HashMap()
operationMap = alsbImportPlan.getOperations()
print
print 'Default importPlan'
printOpMap(operationMap)
set = operationMap.entrySet()

alsbImportPlan.setPreserveExistingEnvValues(true)

#ブール値
abort = false
#作成される参照のリスト
createdRef = ArrayList()

for entry in set:
ref = entry.getKey()
op = entry.getValue()
#リソース タイプに基づいて異なるロジックを設定する
type = ref.getTypeId
if type == Refs.SERVICE_ACCOUNT_TYPE or type == Refs.SERVICE_PROVIDER_TYPE:
if op.getOperation() == ALSBImportOperation.Operation.Create:
print 'Unable to import a service account or a service provider on a target system', ref
abort = true
elif op.getOperation() == ALSBImportOperation.Operation.Create:
#作成されたリソースのリストを保持する
createdRef.add(ref)

if abort == true :
print 'This jar must be imported manually to resolve the service account and service provider dependencies'
SessionMBean.discardSession(sessionName)
raise

print
print 'Modified importPlan'
printOpMap(operationMap)
importResult = ALSBConfigurationMBean.importUploaded(alsbImportPlan)

printDiagMap(importResult.getImportDiagnostics())

if importResult.getFailed().isEmpty() == false:
print 'One or more resources could not be imported properly'
raise

#カスタマイズ ファイルが指定される場合、カスタマイズする
#作成されたリソースにのみ影響を与える
if customFile != None :
print 'Loading customization File', customFile
print 'Customization applied to the created resources only', createdRef
iStream = FileInputStream(customFile)
customizationList = Customization.fromXML(iStream)
filteredCustomizationList = ArrayList()
setRef = HashSet(createdRef)

# すべてのカスタマイズをフィルタし、customizationList でのカスタマイズ対象
を、作成されるリソースまで絞り込む
print customization
newcustomization = customization.clone(setRef)
filteredCustomizationList.add(newcustomization)

ALSBConfigurationMBean.customize(filteredCustomizationList)

SessionMBean.activateSession(sessionName, "Complete test import with customization using wlst")

print "Deployment of : " + importJar + " successful"
except:
print "Unexpected error:", sys.exc_info()[0]
if SessionMBean != None:
SessionMBean.discardSession(sessionName)
raise

#===================================================================
# 操作のリストを出力するユーティリティ機能
#===================================================================
def printOpMap(map):
set = map.entrySet()
for entry in set:
op = entry.getValue()
print op.getOperation(),
ref = entry.getKey()
print ref
print

#===================================================================
# 診断を出力するユーティリティ機能
#===================================================================
def printDiagMap(map):
set = map.entrySet()
for entry in set:
diag = entry.getValue().toString()
print diag
print

#===================================================================
# コンフィグレーション ファイルからプロパティをロードするユーティリティ機能
#===================================================================

def loadProps(configPropFile):
propInputStream = FileInputStream(configPropFile)
configProps = Properties()
configProps.load(propInputStream)
return configProps

#===================================================================
# 管理サーバに接続する
#===================================================================

def connectToServer(username, password, url):
connect(username, password, url)
domainRuntime()

#===================================================================
# バイナリ ファイルを読み込むユーティリティ機能
#===================================================================
def readBinaryFile(fileName):
file = open(fileName, 'rb')
bytes = file.read()
return bytes

#===================================================================
# 任意のセッション名を作成するユーティリティ機能
#===================================================================
def createSessionName():
sessionName = String("SessionScript"+Long(System.currentTimeMillis()).toString())
return sessionName

#===================================================================
# セッション MBean をロードするユーティリティ機能
#===================================================================
def getSessionManagementMBean(sessionName):
SessionMBean = findService("SessionManagement", "com.bea.wli.sb.management.configuration.SessionManagementMBean")
SessionMBean.createSession(sessionName)
return SessionMBean


# IMPORT スクリプト init
try:
# Service Bus コンフィグレーションのインポート
# argv[1] は、エクスポート コンフィグレーション プロパティ ファイルである。
importToALSBDomain(sys.argv[1])

except:
print "Unexpected error: ", sys.exc_info()[0]
dumpStack()
raise

import.properties の例

##################################################################
# OSB 管理セキュリティ コンフィグレーション #
##################################################################
adminUrl=t3://localhost:7021
importUser=weblogic
importPassword=weblogic

##################################################################
# エクスポートする OSB Jar、省略可能なカスタマイズ ファイル #
##################################################################
importJar=export.jar
customizationFile=OSBCustomizationFile.xml

##################################################################
# パスフレーズとプロジェクト名 (省略可能)。 #
# プロジェクトを指定する場合、スクリプトによって、適切な更新、作成や削除で #
# 既存のプロジェクトが上書きされる。 #
# プロジェクトを指定しない場合、スクリプトによって、作成され更新された #
# リソースに対して追加の更新が行われる。 #
##################################################################
passphrase=osb
project=default

OSBCustomizationFile.xml の例

<?xml version="1.0" encoding="UTF-8"?>
<cus:Customizations xmlns:cus="http://www.bea.com/wli/config/customizations" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xt="http://www.bea.com/wli/config/xmltypes">
<cus:customization xsi:type="cus:EnvValueCustomizationType">
<cus:description/>
<cus:envValueAssignments>
<xt:envValueType>UDDI Auto Publish</xt:envValueType>
<xt:location xsi:nil="true"/>
<xt:owner>
<xt:type>ProxyService</xt:type>
<xt:path>default/foo</xt:path>
</xt:owner>
<xt:value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">false</xt:value>
</cus:envValueAssignments>
<cus:envValueAssignments>
<xt:envValueType>Service URI</xt:envValueType>
<xt:location xsi:nil="true"/>
<xt:owner>
<xt:type>ProxyService</xt:type>
<xt:path>default/foo</xt:path>
</xt:owner>
<xt:value xsi:type="xs:string" xmlns:xs="http://www.w3.org/2001/XMLSchema">/foo/updated</xt:value>
</cus:envValueAssignments>
</cus:customization>
<cus:customization xsi:type="cus:FindAndReplaceCustomizationType">
<cus:description/>
<cus:query>
<xt:resourceTypes>ProxyService</xt:resourceTypes>
<xt:envValueTypes>UDDI Auto Publish</xt:envValueTypes>
<xt:envValueTypes>Service URI</xt:envValueTypes>
<xt:refsToSearch xsi:type="xt:ResourceRefType">
<xt:type>ProxyService</xt:type>
<xt:path>default/foo</xt:path>
</xt:refsToSearch>
<xt:includeOnlyModifiedResources>false</xt:includeOnlyModifiedResources>
<xt:searchString>Search String</xt:searchString>
<xt:isCompleteMatch>false</xt:isCompleteMatch>
</cus:query>
<cus:replacement>Replacement String</cus:replacement>
</cus:customization>
<cus:customization xsi:type="cus:ReferenceCustomizationType">
<cus:description/>
</cus:customization>
</cus:Customizations>

サーバの作成

Oracle Service Bus パースペクティブで [ファイル|新規|サーバ] を選択して、[新規サーバー] ウィザードを表示します。

サービス アカウント リソースの作成

Oracle Service Bus パースペクティブで [ファイル|新規|サービス アカウント] を選択して、 [新しいサービス アカウント リソース] ウィザードを表示します。

注意 : サービス アカウント リソースは、Oracle Service Bus プロジェクトでのみ作成できます。

サービス キー プロバイダ リソースの作成

Oracle Service Bus パースペクティブで [ファイル|新規|サービス キー プロバイダ] を選択して、 [新しいサービス キー プロバイダ リソース] ウィザードを表示します。

注意 : サービス キー プロバイダ リソースは、Oracle Service Bus プロジェクトでのみ作成できます。

SMTP サーバ リソースの作成

  1. Oracle Service Bus パースペクティブで [ファイル|新規|SMTP サーバ] を選択して、[新しい SMTP サーバ リソース] ウィザードを表示します。適切な情報を入力します。
注意 : SMTP サーバ リソースは、Oracle Service Bus コンフィグレーション プロジェクトでのみ作成できます。

XQuery トランスフォーメーションの作成

Oracle Service Bus パースペクティブで [ファイル|新規|XQuery トランスフォーメーション] を選択して、XQuery/XSLT 式エディタを表示します。適切な情報を入力します。

注意 : XQuery トランスフォーメーション リソースは、Oracle Service Bus プロジェクトでのみ作成できます。

XSL トランスフォーメーションの作成

Oracle Service Bus パースペクティブで [ファイル|新規|XSL トランスフォーメーション] を選択して、XPath 式エディタを表示します。

注意 : XSL トランスフォーメーション リソースは、Oracle Service Bus プロジェクトでのみ作成できます。

ビジネス サービスの操作

以下のトピックでは、Oracle Service Bus プラグインでビジネス サービスを作成および操作する方法を説明します。

ビジネス サービスの作成

Oracle Service Bus パースペクティブで [ファイル|新規|ビジネス サービス] を選択して、[新しいビジネス サービス] ウィザードを表示します。以下を参照してください。

注意 : ビジネス サービスは、Oracle Service Bus プロジェクトでのみ作成できます。

既存のサービスからビジネス サービスを生成する

既存のプロキシやビジネス サービスからビジネス サービスを生成するには、次の手順に従います。

  1. プロジェクト エクスプローラで、既存のサービスを右クリックし、[Oracle Service Busビジネス サービスの生成] を選択します。
  2. サービスに名前を付けてコンフィグレーションします。

ビジネス サービスの編集

  1. プロジェクト エクスプローラで、編集するビジネス サービスを見つけます。
  2. サービスの名前をダブル クリックします。
  3. 編集するオプションを含むページを選択して、適切に変更を行います。以下を参照してください。

プロキシ サービスの操作

以下のトピックでは、Oracle Service Bus プラグインでプロキシ サービスを作成および操作する方法を説明します。

プロキシ サービスの作成

Oracle Service Bus パースペクティブで [ファイル|新規|プロキシ サービス] を選択して、[新しいプロキシ サービス] ウィザードを表示します。以下を参照してください。

注意 : プロキシ サービスは、Oracle Service Bus プロジェクトでのみ作成できます。

既存のサービスからプロキシ サービスを生成する

既存のビジネスやプロキシ サービスからプロキシ サービスを生成するには、以下の手順に従います。

  1. プロジェクト エクスプローラで、既存のサービスを右クリックし、[Oracle Service Busプロキシ サービスの生成] を選択します。
  2. サービスに名前を付けてコンフィグレーションします。

ビジネス サービスから作成したプロキシ サービスでは、ビジネス サービスのルート ノードが自動的にメッセージ フローに含まれます。

プロキシ サービスの編集

  1. プロジェクト エクスプローラで、編集するプロキシ サービスを見つけます。
  2. サービスの名前をダブル クリックします。
  3. 編集するオプションを含むページを選択して、適切に変更を行います。以下を参照してください。

アラート送り先の操作

次のトピックでは、Oracle Service Bus プラグインでアラート送り先を作成および操作する方法を説明します。

アラート送り先の作成

  1. Oracle Service Bus パースペクティブの [プロジェクト エクスプローラ] で、アラート送り先を作成するプロジェクトまたはフォルダを右クリックします。
  2. メニューから、[ファイル|新規|アラート送り先] を選択して、[新しいアラート送り先リソース] ウィザードを表示します。適切な情報を入力します。「アラート送り先エディタ」を参照してください。
注意 : アラート送り先は、Oracle Service Bus プロバイダでのみ作成できます。

アラート送り先の編集

  1. プロジェクト エクスプローラで、編集するアラート送り先を含むプロジェクト フォルダを見つけます。
  2. アラート送り先の名前をダブルクリックして、アラート送り先エディタを表示します。必要に応じて、情報を編集します。

アラート送り先への電子メール受信者の追加

  1. アラート送り先の作成」および「アラート送り先の編集」の説明に従って、アラート送り先を作成または編集します。
  2. アラート送り先エディタの [電子メール受信者] フィールドで [追加] をクリックして、[電子メール受信者の編集] ページを表示します。必要に応じて、情報を追加します。

アラート送り先への JMS 送り先の追加

  1. アラート送り先の作成」および「アラート送り先の編集」の説明に従って、アラート送り先を作成または編集します。
  2. アラート送り先エディタの [JMS 送り先] フィールドで [追加] をクリックして、[編集 JMS 送り先] ページを表示します。必要に応じて、情報を追加します。

プロキシ サービス メッセージ フローの操作

以下のトピックでは、プロキシ サービス メッセージ フローに対してノードとアクションを追加およびコンフィグレーションする方法について説明します。

プロキシ サービスのメッセージ フローの作成

プロキシ サービスを作成する場合、メッセージ フローはデフォルトで開始ノードが空の状態で作成されます。メッセージ フローを構築するプロセスは、以下の一般的なパターンに従います。

  1. プロキシ サービスをメッセージ フロー エディタで開きます。プロキシ サービスを開くには、プロジェクト エクスプローラでサービスの名前をダブルクリックします。メッセージ フロー エディタがプロキシ サービス ビューにタブで表示されます。
  2. メッセージ フロー デザイン パレット」を開きます。パレットを開くには、Oracle Service Bus パースペクティブで [ウィンドウ|ビューの表示|デザイン パレット] を選択します。
  3. まだ開いていない場合は、プロパティ ビューを開きます。
    1. Oracle Service Bus パースペクティブで、[ウィンドウ|ビューの表示|その他] を選択します。
    2. [ビューの表示] ダイアログで [全般|プロパティ] を選択します。
  4. ノードとアクションをメッセージ フロー デザイン パレットからメッセージ フロー エディタにドラッグします。
  5. あるいは、メッセージ フロー エディタでノードまたはアクションを右クリックして、その場所に挿入できるノードおよびアクションのメニューを表示することもできます。このメニューには、以下の 1 つまたは複数の項目が表示されます。

    • [挿入|(ノードおよびアクションのリスト)]
    • [これに挿入|(ノードおよびアクションのリスト)]
    • [これの後ろに挿入|(ノードおよびアクションのリスト)]
    • [エラー ハンドラの追加]
  6. ノードおよびアクションをコンフィグレーションします。
    1. プロキシ サービス エディタで、ノードまたはアクションをクリックして選択します。
    2. アウトライン ビューからノードまたはアクションを選択することもできます。アウトライン ビューを開くには、Oracle Service Bus パースペクティブで [ウィンドウ|ビューの表示|アウトライン] を選択します。

    3. プロパティ ビューで、選択したノードまたはアクションに適切なプロパティを設定します。ノードおよびアクションをコンフィグレーションする手順については、ノードまたはアクションのプロパティ ビューをクリックし、〔F1〕を押してヘルプを参照してください。

メッセージ フローへのアラート アクションの追加とコンフィグレーション

アラート送り先にアラートを送信するには、アラート アクションを使用して、パイプラインのメッセージ コンテキストに基づいてアラートを生成します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

アラート アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|レポート] リストを開きます。
  2. アラート アクションをメッセージ フローの適切な場所にドラッグします。

アラート アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、アラート アクションをクリックします。
  2. [アラート アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの割り当てアクションの追加とコンフィグレーション

XQuery 式の結果をコンテキスト変数に割り当てるには、割り当てアクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

割り当てアクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. 割り当てアクションをメッセージ フローの適切な場所にドラッグします。

割り当てアクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、割り当てアクションをクリックします。
  2. [割り当てアクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの条件付きブランチ ノードの追加とコンフィグレーション

条件付きブランチ ノードは、XPath 条件が返す結果に基づいて、考えられる複数のパスの中の 1 つのみに沿ってメッセージ処理を進める指定を行うために使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

条件付きブランチ ノードを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. 条件付きブランチ ノードをメッセージ フローの適切な場所にドラッグします。

条件付きブランチ ノードをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、条件付きブランチ ノードをクリックします。
  2. [条件付きブランチ ノードのプロパティ ] ページで、プロパティを適切に編集します。

メッセージ フローへの削除アクションの追加とコンフィグレーション

削除アクションは、コンテキスト変数や、XPath 式で指定されたノードのセットの削除に使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

削除アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. メッセージ フローのステージ アクションの適切な場所に削除アクションをドラッグします。

削除アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、削除アクションをクリックします。
  2. [削除アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの動的パブリッシュ アクションの追加とコンフィグレーション

XQuery 式によって指定されたサービスに対してメッセージをパブリッシュするには、動的パブリッシュ アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

動的パブリッシュ アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. 動的パブリッシュ アクションをメッセージ フローの適切な場所にドラッグします。

動的パブリッシュ アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、動的パブリッシュ アクションをクリックします。
  2. [動的パブリッシュ アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの動的ルーティング アクションの追加とコンフィグレーション

動的ルーティング アクションは、XQuery リソースで入手できるルーティング情報に基づいて、メッセージのルートを割り当てるために使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

動的ルーティング アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ルート アクション|通信] リストを開きます。
  2. 動的ルーティング アクションをメッセージ フローのルート アクションにドラッグします。

動的ルーティング アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、動的ルーティング アクションをクリックします。
  2. [動的ルーティング アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのエラー ハンドラの追加とコンフィグレーション

エラー·ハンドラを使用して、メッセージ·フロー内の指定の場所でエラーが発生した場合の処理を指定します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

エラー ハンドラを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. エラー ハンドラをメッセージ フローの適切な場所にドラッグします。
  3. ステージ ノードをエラーハンドラにドラッグします。
  4. ステージにエラー ハンドラを定義するために適切なアクションを追加します。

エラー ハンドラをコンフィグレーションするには

  1. メッセージ フロー エディタ」で、まだ選択されていない場合は、エラー ハンドラをクリックします。
  2. [エラー ハンドラ ノードのプロパティ] ページで、プロパティを編集します。
  3. まだ選択していない場合は、ステージ ノードをクリックします。
  4. [ステージ ノードのプロパティ] ページで、プロパティを編集します。
  5. ステージに含まれるアクションを選択して適切に編集します。

メッセージ フローへの For-Each アクションの追加とコンフィグレーション

For-Each アクションは、一連の値を反復処理してアクションのブロックを実行するために使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

For-Each アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. For-Each アクションをメッセージ フローの目的のステージ アクションにドラッグします。

For-Each アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、For-Each アクションをクリックします。
  2. [For-Each アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの If-Then アクションの追加とコンフィグレーション

XQuery 式のブール結果に基づき、1 つまたは複数のアクションを条件付きで実行するには、If-Then アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

If-Then アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、以下のいずれかを行います。
    • ルート ノードにある If-Then アクションをまだ開いていない場合は、[ルート アクション|フロー制御] リストを開きます。
    • ステージ ノードにある If-Then アクションをまだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. If-Then アクションをメッセージ フローのルート ノードまたは目的のステージ アクションにドラッグします。

If-Then アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、If-Then アクションに含まれる個別の If 条件と Else-If 条件をクリックし、「If-Then アクションのプロパティ」の説明に従って条件エディタで条件を定義します。

メッセージ フローへの挿入アクションの追加とコンフィグレーション

XPath 式で選択したノードを基準に、指定した位置に XQuery 式の結果を挿入するには、挿入アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

挿入アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. 挿入アクションをメッセージ フローの適切な場所にドラッグします。

挿入アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、挿入アクションをクリックします。
  2. [挿入アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの Java コールアウト アクションの追加とコンフィグレーション

メッセージ フローから Java メソッド、または EJB ビジネス サービスを呼び出すには、Java コールアウト アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

Java コールアウト アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. Java コールアウト アクションをメッセージ フローの適切な場所にドラッグします。

Java コールアウト アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、Java コールアウト アクションをクリックします。
  2. [Java コールアウト アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのログ アクションの追加とコンフィグレーション

ログに記録するメッセージを作成し、ログに使用する一連の属性を定義するには、ログ アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ログ アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|レポート] リストを開きます。
  2. ログ アクションをメッセージ フローの適切な場所にドラッグします。

ログ アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ログ アクションをクリックします。
  2. [ログ アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの MFL 変換アクションの追加とコンフィグレーション

MFL (メッセージ フォーマット言語) 変換アクションを使用して、メッセージ パイプライン内でメッセージ コンテンツを XML と XML 以外の形式との間で変換します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

MFL 変換アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. MFL 変換アクションをメッセージ フローの適切な場所にドラッグします。

MFL 変換アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、MFL 変換アクションをクリックします。
  2. [MFL 変換アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのオペレーション ブランチ ノードの追加とコンフィグレーション

オペレーション ブランチ ノードを使用すると、WSDL で定義されているオペレーションに基づいてブランチをコンフィグレーションできます。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

オペレーション ブランチ ノードを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. オペレーション ブランチ ノードをメッセージ フローの適切な場所にドラッグします。

オペレーション ブランチ ノードをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、オペレーション ブランチ ノードをクリックします。
  2. [オペレーション ブランチ ノードのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのパイプライン ペア ノードの追加とコンフィグレーション

パイプライン ペア ノードは、要求および応答処理の定義に使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

パイプライン ペア ノードを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. パイプライン ペア ノードをメッセージ フローの適切な場所にドラッグします。

パイプライン ペア ノードをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、パイプライン ペア ノードをクリックします。
  2. [パイプライン ペア ノードのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのパブリッシュ アクションの追加とコンフィグレーション

静的に指定された、メッセージの対象サービスを指定し、メッセージのパッケージおよびサービスへの送信方法をコンフィグレーションするには、パブリッシュ アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

パブリッシュ アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. パブリッシュ アクションをメッセージ フローの適切な場所にドラッグします。

パブリッシュ アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、パブリッシュ アクションをクリックします。
  2. [パブリッシュ アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのパブリッシュ テーブル アクションの追加とコンフィグレーション

ゼロまたはそれ以上の静的に指定されたサービスにメッセージをパブリッシュするには、パブリッシュ テーブル アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

パブリッシュ テーブル アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. パブリッシュ テーブル アクションをメッセージ フローの適切な場所にドラッグします。

パブリッシュ テーブル アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、パブリッシュ テーブル アクションをクリックします。
  2. [パブリッシュ テーブル アクションのプロパティ] ページで、<式> をクリックして XQuery/XSLT 式エディタを表示します。実行時にルーティングの決定を行う値を返す XQuery 式を作成します。
  3. メッセージ フロー エディタで、ケース アクションを選択します。
  4. [パブリッシュ テーブル アクションのプロパティ] ページの [演算子] リストから比較演算子を選択します。その後で、[] フィールドに、XQuery 式から返される値が評価される対象の値を入力します。
  5. メッセージ フロー エディタで、パブリッシュ テーブルのパブリッシュ アクションの 1 つをクリックして選択します。
  6. [パブリッシュ アクションのプロパティ] ページで、[参照] をクリックしてサービスを選択します。指定した値の式による評価が true の場合にメッセージをパブリッシュするサービスを選択します。[サービス リソースの選択] ダイアログが表示されます。
  7. リストからサービスを選択してから、[OK] をクリックします。これがメッセージのターゲット サービスとなります。
  8. サービスの操作がすでに定義されている場合、[invoking] リストから選択して、呼び出す操作を指定できます。
  9. 発信処理を着信処理と同じにする場合、[着信操作の発信での使用] チェックボックスを選択します。
  10. メッセージのパッケージとサービスへの送信方法をコンフィグレーションするために、[要求アクション] フィールドの [アクションの追加] をクリックし、サービスに関連付ける 1 つまたは複数のアクションを選択します。追加するアクションのタイプの詳細については、「メッセージ フローでのアクションの追加と編集」を参照してください。
  11. 注意 : ステージ エディタでは、ネストは 4 累積レベルまでに制限されています。5 番目のレベルを追加しようとしても、そのネスト アクションは表示されません。累積レベルには、すべてのブランチ アクション (If...Then...条件、パブリッシュ テーブル、ルート テーブル) が含まれます。たとえば、2 レベルの条件と、ルート テーブルを含むパブリッシュ テーブルを使用して、合計 4 レベルにすることができます。ただし、別の条件を追加 (最後のパブリッシュ テーブルに対して) すると、その条件は表示されません。
  12. 新しいケースを挿入するには、[ケース] アイコンをクリックし、[新しいケースの挿入] を選択します。
  13. 新しいケースについて、手順 4 ~ 8 を繰り返します。
  14. ビジネス ロジックで指定されているようにケースを追加します。
  15. 定義されたケースの順序の最後のケースの [ケース] アイコンをクリックし、[デフォルトのケースの挿入] を選択して、末尾にデフォルトのケースを追加します。
  16. デフォルト ケースをコンフィグレーションします。このケースのコンフィグレーションでは、それ以前のケースが満たされていない場合のルーティングの動作を指定します。

メッセージ フローへのエラーを発生させるアクションの追加とコンフィグレーション

指定したエラー コード (文字列) と説明を使用して例外を発生させるには、エラーを発生させるアクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

エラーを発生させるアクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. エラーを発生させるアクションをメッセージ フローの適切な場所にドラッグします。

エラーを発生させるアクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、エラーを発生させるアクションをクリックします。
  2. [エラーを発生させるアクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの名前変更アクションの追加とコンフィグレーション

XPath 式で選択された要素のコンテンツを変更せずに要素名を変更するには、名前変更アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

名前変更アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. 名前変更アクションをメッセージ フローの適切な場所にドラッグします。

名前変更アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、名前変更アクションをクリックします。
  2. [名前変更アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの置換アクションの追加とコンフィグレーション

XPath 式で指定されたノードまたはノードのコンテンツを置き換えるには、置換アクションを使用します。ノードまたはそのコンテンツは、XQuery 式が返した値で置換されます。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

置換アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. 置換アクションをメッセージ フローの適切な場所にドラッグします。

置換アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、置換アクションをクリックします。
  2. [置換アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの返信アクションの追加とコンフィグレーション

呼び出し元に即時に返信されるように指定するには、返信アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

返信アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. 返信アクションをメッセージ フローの適切な場所にドラッグします。

返信アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、返信アクションをクリックします。
  2. [返信アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのレポート アクションの追加とコンフィグレーション

プロキシ サービスのメッセージ レポートを有効にするには、レポート アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

レポート アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|レポート] リストを開きます。
  2. レポート アクションをメッセージ フローの適切な場所にドラッグします。

レポート アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、レポート アクションをクリックします。
  2. [レポート アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの再開アクションの追加とコンフィグレーション

エラー ハンドラによってエラーが処理された後で、メッセージ フローを再開するには、再開アクションを使用します。このアクションにパラメータはありません。このアクションはエラー パイプラインでのみ使用できます。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

再開アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. 再開アクションをメッセージ フローの適切な場所にドラッグします。

再開アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、再開アクションをクリックします。
  2. [再開アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのルート ノードの追加とコンフィグレーション

ルート ノードは、ビジネス サービスとの間で要求メッセージおよび応答メッセージのディスパッチの処理に使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ルート ノードを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. ルート ノードをメッセージ フローの適切な場所にドラッグします。

ルート ノードをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ルート ノード アクションをクリックします。
  2. [ルート ノードのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのルーティング アクションの追加とコンフィグレーション

ルーティング アクションを使用して、メッセージの対象サービスを識別し、そのサービスにメッセージがルーティングされる方法をコンフィグレーションします。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ルーティング アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ルート アクション|通信] リストを開きます。
  2. ルーティング アクションをメッセージ フローの適切な場所にドラッグします。

ルーティング アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ルーティング アクションをクリックします。
  2. [ルーティング アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのルーティング オプション アクションの追加とコンフィグレーション

ルーティング オプション アクションは、発信要求のプロパティ (URI、サービス品質、モード、再試行パラメータ、メッセージ優先度) の一部またはすべてを変更するために使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ルーティング オプション アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. ルーティング オプション アクションをメッセージ フローの適切な場所にドラッグします。

ルーティング オプション アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ルーティング オプション アクションをクリックします。
  2. [ルーティング オプション アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのルーティング テーブル アクションの追加とコンフィグレーション

ルーティング テーブルを使用して、単一の XQuery 式の結果に基づいて異なるルートを選択します。ルーティング テーブル アクションは、切り替え式の条件表にラップされた一連のルートを含みます。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ルーティング テーブル アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ルート アクション|通信] リストを開きます。
  2. ルーティング テーブル アクションを、メッセージ フローの目的の場所にドラッグします。

ルーティング テーブル アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ルーティング テーブル アクションをクリックします。
  2. [ルーティング テーブル アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのサービス コールアウト アクションの追加とコンフィグレーション

Oracle Service Bus に登録済みのプロキシ サービスまたはビジネス サービスの同期 (ブロック) コールアウトをコンフィグレーションするには、サービス コールアウト アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

サービス コールアウト アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. サービス コールアウト アクションを、メッセージ フローの目的の場所にドラッグします。

サービス コールアウト アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、サービス コールアウト アクションをクリックします。
  2. [サービス コールアウト アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのスキップ アクションの追加とコンフィグレーション

スキップ アクションを使用して、実行時に現在のステージの実行をスキップし、メッセージ フローの次のステージに処理が進むように指定します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

スキップ アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|フロー制御] リストを開きます。
  2. スキップ アクションを、メッセージ フローの目的の場所にドラッグします。

スキップ アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、スキップ アクションをクリックします。
  2. [スキップ アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへのステージの追加とコンフィグレーション

メッセージ フローのアクションのコンテナとしてステージ ノードを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

ステージを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[Oracle Service Bus メッセージ フロー|ノード] リストを開きます。
  2. メッセージ フローの目的の位置にステージをドラッグします。
  3. コンフィグレーションに適切なアクションをステージに追加します。

ステージをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、ステージをクリックします。
  2. [ステージ ノードのプロパティ] ページで、必要に応じてプロパティを編集します。

メッセージ フローへの転送ヘッダ アクションの追加とコンフィグレーション

メッセージのヘッダの値を設定するには、転送ヘッダ アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

転送ヘッダ アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|通信] リストを開きます。
  2. メッセージ フローの目的の位置に転送ヘッダ アクションをドラッグします。

転送ヘッダ アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、転送ヘッダ アクションをクリックします
  2. [転送ヘッダ アクションのプロパティ] ページで、プロパティを適切に編集します。

メッセージ フローへの検証アクションの追加とコンフィグレーション

XML スキーマ要素または WSDL リソースに対して、XPath 式で選択した要素を検証するには、検証アクションを使用します。

始める前に

目的のプロキシ サービスのメッセージ フローを表示します。「プロキシ サービスのメッセージ フローの作成」を参照してください。

検証アクションを追加するには

  1. メッセージ フロー デザイン パレット」で、まだ開いていない場合は、[ステージ アクション|メッセージ処理] リストを開きます。
  2. メッセージ フローの目的の位置に検証アクションをドラッグします

検証アクションをコンフィグレーションするには

  1. メッセージ フロー エディタで、まだ選択されていない場合は、検証アクションをクリックします
  2. [検証アクションのプロパティ] ページで、プロパティを適切に編集します。

MQ 接続の操作

MQ 接続は、複数の MQ プロキシ サービスおよびビジネス サービスで再使用できる、共有可能なリソースです。MQ プロキシ サービスとビジネス サービスは、MQ キューにアクセスする前に、MQ キュー マネージャに接続する必要があります。MQ 接続リソースは、MQ キュー マネージャへ接続するための接続要求を行います。

各 MQ 接続リソースには、接続プールがあります。任意の MQ 接続リソースを使用して任意のキュー マネージャへの接続を取得しているすべてのビジネス サービスまたはプロキシ サービスは、そのリソースに対して作成された同じ接続プールを使用します。つまり、同じキュー マネージャを使用している複数のビジネス サービスまたはプロキシ サービスは、接続プールを共有することになります。

Oracle Service Bus MQ 接続リソースとネイティブ MQ 転送の詳細については、『ネイティブ MQ 転送ユーザーズ ガイド』を参照してください。

WebSphere MQ の基礎の詳細については、 http://www.redbooks.ibm.com/redbooks/SG247128/wwhelp/wwhimpl/java/html/wwhelp.htm を参照してください。

MQ 接続の追加

Oracle Service Bus では MQ 接続はカスタム リソースとして作成されます。したがって、MQ 接続を追加するには、次のようにカスタム リソースとして作成する必要があります。

  1. Oracle Service Bus パースペクティブで [ファイル|新規|カスタム リソース] を選択して、 [新しいカスタム リソース] ウィザードを表示します。
  2. [新しいカスタム リソースの作成] ページの [リソースの種類] フィールドで [MQ 接続] を選択します。
  3. カスタム MQ の [リソース コンフィグレーション] ページで適切なコンフィグレーション情報を入力します。
  4. 注意 : MQ 接続リソースにスペースを含めないでください。

MQ 接続の編集

  1. プロジェクト エクスプローラで、編集する MQ 接続リソースを含む Oracle Service Bus コンフィグレーション フォルダを見つけます。
  2. MQ 接続の名前をダブル クリックして、カスタム MQ の [リソース コンフィグレーション] ページを表示します。適切に編集を行います。

UDDI レジストリの操作

Universal Description, Discovery and Integration (UDDI) レジストリは、企業で Web サービスを共有するために使用されます。UDDI は、企業のビジネス、ビジネス サービス、および公開するサービスの技術的な詳細を分類するためのフレームワークを提供します。

レジストリへサービスをパブリッシュするには、サービス タイプと、レジストリ内でそのサービスを表すデータ構造の知識が必要です。レジストリ エントリには、特定のプロパティが関連付けられ、これらのプロパティ タイプはレジストリの作成時に定義されます。レジストリにサービスをパブリッシュして、他の組織がそのサービスを検出して使用できるようにすることが可能です。Oracle Service Bus で開発されたプロキシ サービスは、UDDI レジストリにパブリッシュできます。Oracle Service Bus は任意の UDDI バージョン 3.0 に適合したレジストリと相互作用します。

『Oracle Service Bus ユーザーズ ガイド』の「UDDI」も参照してください。

UDDI レジストリの追加

  1. Oracle Service Bus パースペクティブで [ファイル|新規|UDDI レジストリ] を選択して、[新しい UDDI リソース] ウィザードを表示します。
  2. 注意 : UDDI レジストリは、Oracle Service Bus コンフィグレーション プロジェクトにのみ追加できます。
  3. 場所を選択して名前を入力したら、[UDDI レジストリのコンフィグレーション] ページでレジストリをコンフィグレーションします。
注意 : UDDI レジストリは、Oracle Service Bus コンフィグレーション プロジェクトでのみ追加できます。

UDDI レジストリのコンフィグレーション

  1. プロジェクト エクスプローラで、コンフィグレーションする UDDI レジストリを見つけます。
  2. レジストリの名前をダブル クリックします。
  3. [UDDI レジストリのコンフィグレーション] ページでコンフィグレーション オプションを設定します。

UDDI レジストリからのビジネス サービスのインポート

  1. ビジネス サービスの作成」に示されているように、ビジネス サービスを作成します。
  2. [新しい ビジネス サービス] ウィザードの ビジネス サービスの [全般的なコンフィグレーション] ページで、[WSDL Web サービス] を選択します。次に、[参照] をクリックします。
  3. [WSDL の選択] ダイアログで [消費] をクリックします。
  4. [サービス消費] ダイアログで [UDDI] を選択します。
  5. [サービス消費] ダイアログで [UDDI レジストリへのアクセス] を使用する方法のヘルプを参照するには、〔F1〕を押すか、[サービス消費] ダイアログのヘルプ システムで検索してください。

分割-結合の操作

このセクションでは、分割-結合の作成とコンフィグレーションの手順を説明します。以下に、このセクションの主なトピックを示します。

分割-結合の概要

分割-結合は、Oracle Service Bus メッセージ フローの転送型ビジネス サービスによって使用される調停パターンです。分割-結合を使用すると、複数のサービスに同時にメッセージ要求を送信できるので、メッセージ要求を順次送信する場合と比較してパフォーマンスが改善します。分割-結合は、入力メッセージを個別のメッセージに分割し、それらを同時に宛先へルーティングして、応答を 1 つの総合的な返信メッセージに集約することで、この作業を実現します。

Workshop for WebLogic の分割-結合エディタで分割-結合を設計してから、テストとプロダクションのために Oracle Service Bus Console にエクスポートします。

注意 : Oracle Service Bus Console では、分割-結合は、フロー転送プロトコルを使用してビジネス サービスと関連付けられます。そのため、このドキュメントでは常に「分割-結合」と簡単に呼んでいますが、Workshop for WebLogic において分割-結合は .flow というファイル拡張子を持っています。

分割-結合の設計」で説明されるように、静的な分割-結合と動的な分割-結合の 2 つの分割-結合パターンがあります。

Oracle Service Bus メッセージ フローからビジネス サービスを呼び出す詳細については、Oracle Service Bus Console のヘルプ システムの「プロキシ サービス : メッセージ フロー」を参照してください。

SOAP ヘッダ内のコンテンツでの分割-結合の使用

分割-結合を使用して、SOAP ヘッダにメッセージ コンテンツを格納するサービスのパフォーマンスを向上させることができます。 プロキシ サービスは SOAP ヘッダを分割-結合に渡すことができます。そして、分割-結合が呼出しまたは応答として SOAP ヘッダをプロキシとビジネス サービスに渡すことができます。

この機能を有効にするには、分割-結合 WSDL と 分割-結合によって呼び出されるプロキシやビジネス サービスの WSDL に、単一の要求メッセージまたは応答メッセージに本文部分とヘッダ部分を宣言する必要があります。メッセージ部分を WSDL に宣言すると、分割-結合で要求/応答メッセージ変数に SOAP ヘッダ コンテンツを利用できます。

以下に、WSDL でのメッセージとバインディング定義の例を示します。

メッセージ
<wsdl:message name="retrieveCustomerOverviewByIdRequestMessage">
    <wsdl:part name="retrieveCustomerOverviewByIdRequest"
element="co:retrieveCustomerOverviewByIdRequest"/>
    <wsdl:part name="serviceContext" element="sc:serviceContext"/>
</wsdl:message>
バインディング
<wsdl:input>
<soap:body use="literal" parts="retrieveCustomerOverviewByIdRequest"/>
    <soap:header message="tns:retrieveCustomerOverviewByIdRequestMessage"
part="serviceContext" use="literal"/>
</wsdl:input>

分割-結合の設計

分割-結合には、静的な分割-結合と動的な分割-結合の 2 つのパターンがあります。

静的な分割-結合は、固定した数 (数が不明な場合に対して) のメッセージ要求の作成に使用できます。たとえば、顧客が、インターネット サービス、TV サービス、電話サービスという 3 つの独立したサービスを含むケーブル パッケージの注文を行う場合です。静的な使用例では、3 つの要求すべてを分割したパラレル ブランチで実行できるため、標準的な順次実行と比較して実行時間のパフォーマンスが改善されます。

動的な分割-結合は、数が変化するメッセージ要求の作成に使用できます。たとえば、個別の発注数が変化する注文を小売業者が一括して行う場合です。動的な使用例では、一括注文を解析して発注ごとに分離したメッセージ要求を作成できます。静的な使用例と同様に、これらのメッセージはパラレルに実行できるため、パフォーマンスが改善されます。

初期設定

分割-結合の初期設定では、以下の作業を行う可能性があります。

基本操作を含む WSDL の作成またはインポート

すべての分割-結合は WSDL 操作に基づいています。分割-結合を初めて作成する際には、適切な WSDL ファイルを指定し、作成プロセスの一部としてこの操作を選択するように求められます。この WSDL ファイルは、Workshop for WebLogic で作成できます。

分割-結合で使用するビジネス サービスの作成またはインポート

すべての分割-結合は、転送型ビジネス サービスによって使用されます。言い換えるとプロキシ サービスによって呼び出されます。ビジネス サービスの作成が終了しなければ、分割-結合のエクスポートやテストを行うことはできません。ビジネス サービスが既に存在している場合は、これを Workshop for WebLogic にインポートすることができます。存在していない場合は Workshop for WebLogic または Oracle Service Bus Console で作成できます。ビジネス サービスを作成する前に分割-結合を開始する場合は、分割-結合の作成後にビジネス サービスを自動的に生成できます。

静的な分割-結合の設計

ここでは、テレビ、電話、インターネット サービスを含んだ電話会社のケーブル サービスのパッケージの注文を処理する「サービスの利用可能性」という名前の新しい分割-結合を設計するものとします。パッケージの注文を受信し、各種類のサービスに対して受注確認を返信するというのが、分割-結合での考え方になります。この例では、注文ごとに各タイプのサービスについて 3 つのメッセージ要求があるので、「サービスの利用可能性」は「静的」な分割-結合として設計されます。この例では、顧客はテレビと DSL サービスのみを要求します。

「サービスの利用可能性」分割-結合の作成には以下の手順が含まれます。

1. 新しい分割-結合の作成

2. 割り当ての追加

3. パラレル ノードの追加

4. 各ブランチに対する割り当ての追加

5. サービスを呼び出すの追加

6. 各ブランチに対する割り当ての追加

7. 分割-結合のエクスポートとテスト

1. 新しい分割-結合の作成

注文の実行に使用する WSDL 操作に基づいて分割-結合を作成します。この例では、WSDL 操作を「telecom」と呼びます。

WSDL 操作を選択すると、次の図に示すように、新しく作成された分割-結合のスケルトンが分割-結合エディタに表示されます。スケルトンは開始ノード、受信ノード、返信ノードから構成されます。[全般プロパティ] タブにあるこれらのラベルは、この特定の分割-結合の各ノードに固有の機能をより適切に反映したものに編集されます。

プロキシ サービスのデバッグ

開始ノードには、最初に選択された WSDL 操作によって決定された要求変数と応答変数が両方とも含まれます。受信ノードでは受信要求メッセージ (この例では 3 種類以下のケーブル サービス) を受信し、返信ノードでは応答メッセージを生成して、これをクライアントに戻します。

注意 : 受信ノードには、これ以上のコンフィグレーションは必要ありません。同様に、返信ノードには、エラーを生成する場合を除く、これ以上のコンフィグレーションは必要ありません。上記のシナリオにエラーの生成はありません (エラーの生成の詳細については、「返信のコンフィグレーション」を参照)。

2. 割り当ての追加

最初の割り当てである「出力メッセージの用意」には、後からノードのデータで作業 (つまり、データのコピー、挿入、割り当て、置換、削除、Java コールアウト、ログなど) できるような形で応答変数を用意する割り当て操作が含まれます。この出力メッセージは、分割-結合の最終的な返信ノードに中継され、その結果、元のクライアントに戻ります。

3. パラレル ノードの追加

パラレル ノードには、ケーブル TV の利用可能性のチェックと、DSL の利用可能性のチェックの 2 つの主要ブランチがあります。各ブランチはいくつかのアクションで構成されており、そのシーケンスと全体的なコンフィグレーションは両方のブランチで同じになっています。

プロキシ サービスのデバッグ

4. 各ブランチに対する割り当ての追加

各パラレル ブランチの最初の割り当てである「入力アドレスの用意」では、その場所でサービスが利用できるかどうかをチェックするために、受信した顧客アドレス データを参照されている変数にコピーします。この割り当ては、各ブランチに対して同じになっており、これはブランチが追加される場合でも同様です。

5. サービスを呼び出すの追加

次に外部サービスが呼び出されて、要求されたサービスのタイプが顧客のいる場所で利用可能であるかどうかがチェックされます。各ブランチには、1 つのサービスを呼び出す、「TV の利用可能性のチェック」、および「DSL の利用可能性のチェック」が含まれます。 それぞれの外部サービスの呼び出しでは、顧客のアドレス (前の手順で初期化された変数に格納されている) が、その場所でのサービスの利用可能性と比較されます。結果は出力変数に格納され、次の手順であるブランチの最終的な割り当てに渡されます。

6. 各ブランチに対する割り当ての追加

最終的な 2 つの割り当て、「出力メッセージのケーブル TV ステータスの更新」と「出力メッセージの DSL ステータスの更新」では、外部サービス呼び出しの結果を取得し、置換操作を使用して、これを出力メッセージに入れます。集約された応答は、これ以上のコンフィグレーションが必要でない最終的な返信ノードにある元のクライアントに送信されます。

7. 分割-結合のエクスポートとテスト

分割-結合の設計が終了したら、テストとプロダクション用に Oracle Service Bus Console にエクスポートできます。

プロキシ サービスのデバッグ

関連トピック

動的な分割-結合の設計

小売業者からの一括注文を処理する分割-結合を設計する場合を考えてみます。一括注文内の個別の発注の数は (発注数が固定してる注文とは異なり) 変化します。一括注文を受信し、その中にある各注文に受注確認を返信するというのが、分割-結合での考え方になります。個別の発注数要求の数は変化し、設計時にその数を知ることはできないので、これは「動的な」分割-結合になります。

動的な分割-結合の作成には以下の手順が含まれます。

1. 新しい分割-結合の作成

2. 割り当ての追加

3. For Each の追加

4. 割り当ての追加

5. サービスを呼び出すの追加

6. 割り当ての追加

7. エラー ハンドラの追加

8. 分割-結合のエクスポートとテスト

1. 新しい分割-結合の作成

注文の実行に使用する WSDL 操作に基づかない分割-結合を作成します。この例では、WSDL 操作を「batchOrders」と呼びます。

この操作が選択されると、開始ノード、受信ノード、返信ノードから構成される新しく作成された分割-結合のスケルトンが、分割-結合エディタに表示されます。[全般プロパティ] タブにあるこれらのラベルは、この特定の分割-結合の各ノードに固有の機能をより適切に反映したものに編集されます。

プロキシ サービスのデバッグ

開始ノードである「注文の実行」には、要求変数 inputVar と応答変数 outputVar の両方が含まれます。受信ノードである「一括注文要求の受信」は、要求変数 (この例の場合は発注) の内容を初期化し、返信ノードである「注文の実行への返信」は、応答変数に集約された受注確認に基づいて応答をクライアントへ戻します。この例では、「注文の実行」には、個別の注文を承認するために呼び出される外部サービス「Order」へのコールアウトが含まれています。

注意 : 受信ノードには、これ以上のコンフィグレーションは必要ありません。同様に、返信ノードには、エラーを生成する場合を除き、これ以上のコンフィグレーションは必要ありません。上記のシナリオにエラーの生成はありません (エラーの生成の詳細については、「返信のコンフィグレーション」を参照)。

2. 割り当ての追加

最初の割り当てである「出力メッセージの用意」には、後から応答変数 (ここでは理解を容易にするために「出力メッセージ」というラベルになっています) をノード内にキャプチャしたデータで作業 (つまり、変数へのコピー、挿入、割り当て、置換、削除) できるような形で用意する割り当て操作が含まれます。この例の場合、データは受注確認やエラーで構成されます。この出力メッセージは、分割-結合の最終的な返信ノードに中継され、その結果、元のクライアントに戻ります。

3. For Each の追加

For Each である「注文全体で繰り返し」には、一括注文内にある個別の注文を 1 つずつ解析して、承認のために外部プロキシに送信し、応答内にある受注確認をキャプチャするロジックが含まれます。注文に問題がある場合、呼び出されたプロキシからエラーが送信され、エラー ハンドラでキャプチャされます。次の図に For Each ロジックのスコープ全体を示します。

プロキシ サービスのデバッグ

4. 割り当ての追加

割り当て「発注の準備」は、受信発注要求を、次の手順で承認をチェックするために参照される変数にコピーします。

5. サービスを呼び出すの追加

次に外部サービス「注文の有効性のチェック」が呼び出され、個別の発注ごとに承認を行います。注文が受け入れられる場合、サービスは受注確認で応答します。注文が受け入れられない場合、サービスはエラーで応答します。この結果は出力変数に格納され、次の手順で説明する最終的な割り当てに渡されます。

6. 割り当ての追加

最終的なの割り当てである「出力メッセージの注文ステータスの更新」は、外部サービス呼び出しの結果を取得し、挿入操作を使用してこの結果を出力メッセージにコピーします。集約された応答は、これ以上のコンフィグレーションが必要でない最終的な返信ノードにある元のクライアントに送信されます。

7. エラー ハンドラの追加

エラー ハンドラは、呼び出されたサービスから返されたすべてのエラーをキャプチャします。エラー ハンドラは、エラーを取得し、割り当て操作を使用してこれを出力メッセージに挿入します。

プロキシ サービスのデバッグ

8. 分割-結合のエクスポートとテスト

分割-結合の設計が終了したら、テストとプロダクション用に Oracle Service Bus Console にエクスポートできます。

プロキシ サービスのデバッグ

関連トピック

新しい分割-結合の作成

新しい分割-結合を作成するには、分割-結合の基盤となる操作を含む WSDL にアクセスできる必要があります。分割-結合は、既存の Oracle Service Bus コンフィグレーション プロジェクト内の Oracle Service Bus プロジェクトで作成する必要があります。

新しい分割-結合を作成するには、以下の手順を実行します。

  1. Oracle Service Bus パースペクティブで、[ファイル|新規|分割-結合] を選択します。 新しい分割-結合サービス ウィザードが開きます。
  2. 新しい分割-結合サービス ウィザードで、Oracle Service Bus プロジェクトの場所を入力または選択して、新しい分割-結合のファイル名を入力します。完了したら、[次へ] をクリックします。
  3. 次の画面で、バインディングと、分割-結合を実装する操作を選択する必要があります。以下の 2 通りの選択方法があります。
    1. 操作の選択ツリーに表示されている WSDL のいずれかから操作を選択します。現在の Oracle Service Bus コンフィグレーション プロジェクトのすべての WSDL が使用できます。
    2. [消費] ボタンを使用して、WSDL を Oracle Service Bus コンフィグレーション プロジェクトにインポートします。以下の手順に示すように、基本的に、消費では、新しい WSDL が外部リソースからコンフィグレーションにインポートされます。
  4. 基盤となる WSDL を消費する場合は、以下の手順を実行します。
    1. [消費] をクリックします。
    2. 消費される WSDL を生成する場所 (アーティファクト フォルダ) を参照します。デフォルトのアーティファクト フォルダは、現在の Oracle Service Bus プロジェクトです。
    3. 既存のローカル ファイルを上書きする場合は、チェックボックスを選択します。
    4. 消費される WSDL が配置されるサービス リソースを選択します (エンタープライズ リポジトリ、ファイル システム、UDDI、URI、またはワークスペース)。
    5. そのサービス リソースから消費する WSDL を選択します。選択したら、ワークスペースがすぐに再構築され、消費のステータスを示す [サービス消費ステータス] ダイアログが表示されます。成功したら、[OK] を選択してダイアログを閉じます。
    6. 消費される WSDL が Oracle Service Bus コンフィグレーション プロジェクトに置かれ、そこから、分割-結合の基盤となる操作を選択できるようになります。
  5. [終了] をクリックします。

基本的な分割-結合が作成され、デザイン ビューにダイアグラムとして表示されます。デフォルトでは、開始ノード、受信、および返信で構成されています。開始ノードには、WSDL 操作からイントロスペクトされる結果および応答変数が含まれています。受信は、着信要求メッセージを受信するために使用されます。返信は、応答メッセージを送信するために使用されます。

関連トピック

開始ノードのコンフィグレーション

開始ノードは、新しい分割-結合を作成するたびに、自動的に生成されます。これは、その他のすべてのノードを実行するための出発点です。開始ノードのコンフィグレーションには、以下の作業が含まれます。

関連トピック

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

グローバル変数の定義

開始ノードの変数には、分割-結合のノードによってグローバルに参照されるデータが格納されます。デフォルトでは、分割-結合が最初に作成されるときに、すべてのプロセス ノードに、要求および応答の両方の変数が割り当てられます。開始ノードから、新しいグローバル変数を作成するか、または既存のグローバル変数を編集することができます。

グローバルとローカル変数の間の関係の詳細については、「スコープおよび変数」を参照してください。

新しいグローバル変数を作成するには、以下の手順を実行します。

  1. 開始ノードを右クリックし、[変数の作成] を選択して、[変数の作成] ダイアログを開きます。
  2. 変数の名前を入力します。
  3. 変数の型 ([組み込み]、[スキーマ]、または [メッセージ]) を選択します。
  4. 変数を選択します。
  5. 注意 : [スキーマ] または [メッセージ] タイプの変数を選択するには、階層をドリル ダウンする必要がある場合があります。
  6. [OK] をクリックします。

まだ開いていない場合は、開始ノード アイコンの左側の矢印をクリックして、コンテンツ領域を左側に展開します。新しく作成された変数が、その他のグローバル変数と共に [変数] フィールドに表示されます。変数の詳細を表示するには、その変数を選択します。プロパティ ビューに、その構造が表示されます。

既存のグローバル変数を編集するには、以下の手順を実行します。

  1. 以下のいずれかの方法で、[変数の編集] ダイアログを開きます。
    • 選択した変数を右クリックして、コンテキスト メニューから [変数の編集] を選択します。
    • 変数を選択し、変数のプロパティ ビューで [編集] をクリックします。
  2. 変数の名前を入力します。
  3. 変数の型 ([組み込み]、[スキーマ]、または [メッセージ]) を選択します。
  4. 変数を選択します。
  5. 注意 : [スキーマ] または [メッセージ] タイプの変数を選択するには、階層をドリル ダウンする必要がある場合があります。
  6. [OK] をクリックします。

まだ開いていない場合は、コンテンツ領域を開始ノード アイコンの左側に展開します。新しく作成された変数が、その他のグローバル変数と共に [変数] フィールドに表示されます。変数の詳細を表示するには、その変数を選択します。プロパティ ビューに、その構造が表示されます。

外部サービスの表示

開始ノード に示されている [外部サービス] は、分割-結合のコンテキストの外部で呼び出されるサービスです。これらは、サービスの呼び出しで指定されていますが、容易に使用できるようにリストされています。

[外部サービス] を表示するには、開始ノード アイコンの左側の矢印をクリックして、コンテンツ領域を開始ノード の左側に展開します。[外部サービス] を選択する場合、サービスに関連付けられるサービスを呼び出すことを指す破線の青い矢印が表示され、サービスの場所がプロパティ ビューに表示されます。

受信のコンフィグレーション

新しい分割-結合を作成するたびに、受信が自動的に生成されます。受信の目的は、着信要求データを変数に入れ、後のノードでコンテンツを使用できるようにすることです。受信のコンフィグレーションには、以下の作業が含まれます。

関連トピック

操作の表示

操作は、分割-結合全体に対して最初に選択された WSDL に基づきます。これは、参照用としてプロパティ ビューに表示されています。

受信変数の定義

受信が初期化する着信メッセージ変数を定義する必要があります。

  1. 受信操作を選択します。
  2. 新しいメッセージ変数を作成します (以下の手順を参照)。
  3. 注意 : 以前選択した操作に関連付けられているメッセージ変数がない場合は、新しいメッセージ変数を作成する必要があります。

    新しいメッセージ変数を作成するには、[メッセージ変数] メニューから [メッセージ変数を作成します] を選択し、[メッセージ変数を作成します] ダイアログで変数名を入力し、[OK] をクリックします。

変数を定義すると、プロパティ ページに [メッセージ タイプ ネームスペース] と [メッセージ タイプ] が自動的に表示されます。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

割り当ての作成

割り当ては、変数の初期化や更新などのデータ操作に使用されます。割り当てツールバーから追加できる 1 つまたは複数の操作のセットから構成されます。割り当てのコンフィグレーションには、以下の作業が含まれます。

関連トピック

割り当て操作の追加およびコンフィグレーション

割り当て操作には、割り当て、コピー、削除、挿入、Java コールアウト、ログ、および置換があります。各割り当ては、これらの 1 つまたは複数の操作から構成されます。この操作をデザイン パレット ビューから追加できます。

注意 : 分割-結合エディタの割り当て操作は、基本的には、Workshop for WebLogic メッセージ フロー エディタの対応するアクションと同じです。 ただし、重要な相違点の 1 つとして、XQuery、XSLT または XPath エディタを使用して、分割-結合コンテキストの式を編集する場合に、使用可能なのは、分割-結合に対して内部である変数およびネームスペースのみであるという点があります。

各操作の簡単な説明を以下に示します。

割り当てへの操作の追加

割り当てへの操作の追加には、以下の手順が含まれます。

  1. デザイン パレットから操作を分割-結合エディタの割り当てノードにドラッグします。
  2. プロパティ ビューで、操作をコンフィグレーションします。
  3. 分割-結合を保存します。

操作を選択し、プロパティ ビューでプロパティを変更することで操作を編集できます。

コピー操作の追加

コピー操作を使用すると、Xpath 1.0 式で指定された情報を、ソース ドキュメントから、対象のドキュメントにコピーできます。これは、分割-結合エディタに固有の操作です。割り当てへのコピー操作の追加には、以下の手順が含まれます。

  1. デザイン パレットから割り当てにコピー操作を追加します。
  2. プロパティ ビューで、[コピー元の選択] のタイプと [コピー先の選択] のタイプを選択します。
  3. タイプが式の場合は、式を手動で入力するか、または、[参照] をクリックして、XQuery 式ビルダを起動します。
  4. タイプが変数の場合は、目的の要素までドリル ダウンして、選択します。下の [クエリ] フィールドに、結果として生じるクエリが表示されます。
  5. [コピー元の選択] のタイプがリテラルの場合は、テキストフィールドにリテラルを入力します。
  6. [コピー元の選択] のタイプが XML フラグメントの場合は、テキストフィールドにフラグメントを入力 (または貼り付け) します。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

サービスの呼び出し

サービスを呼び出す操作を使用して、外部、WSDL ベースのビジネス サービス、WSDL ベースのプロキシ サービス、および分割-結合を呼び出すことができます。サービスを呼び出すのコンフィグレーションには、以下の作業が含まれます。

関連トピック

操作の選択

サービスを呼び出すで使用する操作を選択する必要があります。入力変数および出力変数を定義する前に、この操作を選択する必要があります。操作を選択するには、以下の手順を実行します。

  1. デザイン パレットからサービスを呼び出す操作を分割-結合に追加します。
  2. プロパティ ビューの [操作] タブで、[参照] をクリックしサービス ブラウザを起動します。
  3. サービス ブラウザで、必要なサービスまでドリル ダウンして、バインディングを選択してから操作を選択します。
  4. [OK] をクリックします。選択された操作とそのサービスの場所がプロパティ ビューに表示されます。
  5. 注意 : プロパティ ビューで [サービスの場所] をクリックすると、外部のサービス ファイルが開かれます。

入力変数および出力変数の定義

サービスを呼び出すには、一方向呼び出しでない限り、入力変数および出力変数の両方が必要です。これらの変数をコンフィグレーションする手順は、基本的には同じです。いずれのタイプの変数も、グローバル (分割-結合全体で使用可能) にすることも、ローカル (特定のコンテキストのスコープ内で使用可能) にすることもできます。入力変数または出力変数を定義するには、以下の手順を実行します。

  1. プロパティ ビューの [入力変数] タブと [出力変数] タブでそれぞれのメッセージ変数を定義します。これには 2 通りの方法があります。
    1. [メッセージ変数] メニューから既存の変数を選択します。
    2. 新しいメッセージ変数を作成します (以下の手順を参照)。
    3. 注意 : 以前に選択した操作に関連付けられているメッセージ変数がない場合は、新しいメッセージ変数を作成する必要があります。

新しいメッセージ変数を作成するには、以下の手順を実行します。

  1. [メッセージ変数] メニューから、[メッセージ変数を作成します] を選択します。[メッセージ変数を作成します] ダイアログが表示されます。
  2. 変数の名前を指定します。
  3. 変数をグローバルまたはローカルにします。グローバル変数は、分割-結合全体でアクセスできますが、ローカル変数は、現在のスコープ内に制限されます。

変数を定義すると、プロパティ ビューに [メッセージ タイプ ネームスペース] と [メッセージ タイプ] が自動的に表示されます。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

パラレルの作成

パラレルは、固定数のコンフィグレーション済みパラレル ブランチを作成します。各ブランチは、任意の数のノードを含めることができるそれぞれのスコープを持ちます。パラレルのコンフィグレーションには、次のタスクを含めることができます。

関連トピック

ノードの追加

パラレルは、基本的には、固定数の処理ブランチのプレースホルダであり、各ブランチは、それぞれのスコープを持ちます。デフォルトでは、2 つのブランチが自動的に生成されます。個々のスコープには、構成に応じて、ユニークな処理ロジックを含めることができます。これは、適切なノードをスコープにドラッグするだけで行えます。[スコープの追加] ボタンを使用して、追加のブランチを追加できます。

プロキシ サービスのデバッグ

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

For Each の作成

For Each は、要求の数に応じて反復する条件付きロジックを作成するために使用します。これは、主に動的な分割-結合を作成するために使用されます。For Each のコンフィグレーションには、以下の作業があります。

関連トピック

For Each ロジックの定義

For Each ロジックを定義するには、以下の手順を実行します。

  1. 分割-結合に For Each ノードを追加し、選択します。
  2. プロパティ ビューで、[カウンタ変数] タブを選択し、パラレル プロパティを [はい] または [いいえ] に設定します。[はい] を選択した場合、個別のブランチは並行処理されます。[いいえ] を選択した場合、個別のブランチは順次処理されます。
  3. [カウンタ名] リンクをクリックしてカウンタ変数名を指定します。
  4. 開始カウンタ値を入力します。必要に応じて、[参照] ボタンを使用して XPath 式ビルダに新しい値を作成します。
  5. 注意 : カウンタの最も小さな開始値は「1」です。
  6. [最終カウンタ値] を入力します。必要に応じて、[参照] ボタンを使用して XPath 式ビルダに新しい値を作成します。
  7. 注意 : カウンタの最も小さな開始値は「1」です。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

If アクティビティの作成

If 条件は、分割-結合内で条件付きロジックを提供するために使用されます。If 条件全体の動作を決定する多数のノードから構成されます。各ノードを個別にコンフィグレーションする必要があります。If アクティビティを作成すると、アクティビティ内に If および Else が自動的に生成されます。Else If の追加ボタンを使用して、Else If ノードを無制限に追加できます。

プロキシ サービスのデバッグ

If アクティビティのコンフィグレーションには、以下の作業が含まれます。

関連トピック

If のコンフィグレーション

If は、If アクティビティ全体内で、1 つの条件付きロジックを提供します。これは、If アクティビティを作成すると自動的に生成されます。If のコンフィグレーションには、以下の作業が含まれます。

関連トピック

条件のロジックの記述

If アクティビティは、XPath 1.0 式で定義された条件付きロジックを実行します。この条件を [条件] タブの [条件] テキスト フィールドに入力するか、または [参照] ボタンをクリックし、[式ビルダ] を起動して、式を書き込みます。

結果としてのノードの追加

If ロジックの条件に合致した場合、結果として 1 つまたは一連のノードが実行されます。結果としてのノードを追加およびコンフィグレーションするには、それらのノードを、[If] アイコンの下のドロップ ポイントに順番にドラッグします。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

Else If の追加およびコンフィグレーション

Else If は、If 全体のコンテキスト内で、追加のロジックを提供するために使用されます。Else If の追加ボタンを押して、いつでも Else If を追加できます。

プロキシ サービスのデバッグ

Else If のコンフィグレーションには、以下の作業が含まれます。

関連トピック

条件のロジックの記述

Else If は、XPath 1.0 式で定義された条件付きロジックを使用します。この条件を [条件] タブの [条件] テキスト フィールドに入力するか、または [参照] ボタンをクリックし、[式ビルダ] を起動して式を書き込みます。

結果としてのノードの追加

Else If ロジックの条件に合致した場合、結果として 1 つまたは一連のノードが実行されます。結果としてのノードを追加およびコンフィグレーションするには、それらのノードを、[Else If] アイコンの下のドロップ ポイントに順番にドラッグします。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

Else のコンフィグレーション

Else アクティビティは、If全体のコンテキスト内で、ロジックの最後の段階を提供します。これは、If が作成されるときに、自動的に生成されます。Else のコンフィグレーションには、以下の作業が含まれます。

関連トピック

結果としてのノードの追加

If のロジックにおける最後の段階であるため、Else では、実行するために条件に合致する必要はありません。呼び出されると、自動的に、結果としてのアクティビティが実行されます。結果としてのノードを追加およびコンフィグレーションするには、それらのノードを、[Else] アイコンの下のドロップ ポイントに順番にドラッグします。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

エラー ハンドラの作成

エラー ハンドラは、エラーを受信して、処理します。開始ノードにアタッチされている場合は、「グローバル」エラー ハンドラであり、すべてのローカルのエラーを発生させるノードの出力に対して、すべてをキャッチします。スコープにアタッチされている場合は、ローカルで発生したエラーのみを処理します。エラー ハンドラを作成するには、以下の手順を実行します。

  1. エラー ハンドラの追加先である開始ノードまたはスコープ ノードを選択します。
  2. 選択済みアイコンを右クリックし、[キャッチの追加] または [CatchAll の追加] を選択します。
  3. SOAP エラーを呼び出す場合は、プロパティ ビューの [CatchAll] タブで、[SOAP エラー変数名] を選択し、エラー ハンドラに関連付けられる SOAP エラー変数を定義します。

基本的なエラー ハンドラはコンフィグレーションされましたが、応答を送信する前に受信したエラーでロジックを実行するかどうかに応じて、エラー ハンドラにその他の割り当て、If、および返信ノードを追加する必要がある場合があります。

関連トピック

[エラーを発生させる] の作成

[エラーを発生させる] は、分割-結合の通常の処理を停止させるエラーを発生させます。エラー ハンドラを使用せずにエラーが処理されると、分割-結合は終了し、Oracle Service Bus メッセージ フローにエラーが送信されます。[エラーを発生させる] のコンフィグレーションには、[一般情報] タブへのエラーの性質の入力が含まれます (省略可能)。

エラー ハンドラに [エラーを再発生させる] 操作も追加できます。コンフィグレーションでは、ラベルの変更とドキュメントの追加を行います。

関連トピック

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、開発者のメモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューを開き、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、キャンバス領域のノード アイコンの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

返信のコンフィグレーション

新しい分割-結合を作成するたびに、グローバルな返信が自動的に生成されます。グローバルな返信の目的は、呼び出している Oracle Service Bus メッセージ フローに、応答を送り返すことです。ただし、返信を分割-結合でのエラー ハンドラ内、または他の場所にも生成できます。返信のコンフィグレーションには、以下の作業が含まれます。

関連トピック

操作の表示

操作は、分割-結合全体に対して最初に選択された WSDL に基づきます。これは、参照用としてプロパティ ビューに表示されています。

返信変数の定義

返信は、変数のコンフィグレーションに応じて、応答または障害をクライアントに送り返すことができます。使用できるエラーのオプションは、返信がグローバルかローカルかによって異なります。

注意 : [応答] および [障害] ボタンを切り替えると、それぞれのコンフィグレーションがクリアされます。たとえば、以前に障害のコンフィグレーションで [SOAP エラーの伝播] を選択していて、[応答] のコンフィグレーションに切り替えると、[SOAP エラーの伝播] の選択が解除されます。

上記の使用可能なオプションを考慮して、返信変数に、応答または障害を選択してください。

応答を選択する場合、応答が割り当てられるメッセージ変数を定義する必要があります。これには 2 通りの方法があります。

  1. 返信を選択し、プロパティ ビューで [変数] タブを選択します。
  2. [メッセージ変数] メニューから既存の変数を選択します。
  3. 新しいメッセージ変数を作成します (以下の手順を参照)。
  4. 注意 : 以前に選択した操作に関連付けられているメッセージ変数がない場合は、新しいメッセージ変数を作成する必要があります。

新しいメッセージ変数を作成するには、[メッセージ変数] メニューから [メッセージ変数を作成します] を選択します。[メッセージ変数を作成します] ダイアログが表示されます。

  1. 変数の名前を指定します。
  2. [OK] をクリックします。

変数を定義すると、プロパティ ビューに [メッセージ タイプ ネームスペース] と [メッセージ タイプ] が自動的に表示されます。

障害を選択する場合は、WSDL エラーまたは SOAP エラーの伝播を選択する必要があります。

注意 : 状況によっては、障害が使用できない、または SOAP エラーしか使用できない場合があります。前述の注意を参照してください。

WSDL エラーを選択する場合、障害を名前で指定し、障害が割り当てられるメッセージ変数を定義する必要があります。

  1. [WSDL 障害名] を選択し、使用可能なものの中から名前を選択します。
  2. 注意 : 使用できる名前が 1 つしかない場合があります。その場合は選択する必要はありません。
  3. メッセージ変数を定義します。これには 2 通りの方法があります。
    1. [メッセージ変数] メニューから既存の変数を選択します。
    2. 新しいメッセージ変数を作成します (以下の手順を参照)。
    3. 注意 : 以前に選択した操作に関連付けられているメッセージ変数がない場合は、新しいメッセージ変数を作成する必要があります。

新しいメッセージ変数を作成するには、[メッセージ変数] メニューから [メッセージ変数を作成します] を選択します。[メッセージ変数を作成します] ダイアログが表示されます。

  1. 変数の名前を指定します。
  2. [OK] をクリックします。

変数を定義すると、プロパティ ページに [メッセージ タイプ ネームスペース] と [メッセージ タイプ] が自動的に表示されます。

[SOAP エラーの伝播] を選択すると、親エラー ハンドラで指定されている SOAP エラーが、返信で自動的に伝播されます。他にコンフィグレーションするものはありません。

全般的な情報の追加

全般的な情報は、ノードをより理解しやすくするために役立ちます。全般的な情報では、ノードにユニークな ID、またはラベルを追加したり、メモまたはドキュメントでそれらを補完したりできます。全般的な情報は、省略可能です。

  1. ノードにラベルを追加するには、プロパティ ビューで [全般] タブを選択し、[ラベル] フィールドにユニークな識別文字列を入力します。入力したラベルは、分割-結合エディタでノードの下に表示されます。
  2. [ドキュメント] フィールドに重要なノートを入力します。

スコープについて

スコープは、さまざまな要素をまとめるコンテナです。このコンテナは、それに含まれる要素の動作に影響を与えるコンテキストを作成します。スコープ内に定義されているローカル変数およびエラー ハンドラは、このコンテキストに制限されます。ただし、スコープ内の一部のノードは、ローカル (スコープ内) にも、グローバル (スコープ外) にも動作する場合があります。たとえば、特定のスコープ内に呼び出したサービスにより、そのスコープのコンテキストの外のサービスが呼び出される場合もあります。

スコープおよび変数

変数は定義されるスコープ内やそのスコープ内にネストされたすべてのスコープに表示できますが、外部のスコープに宣言される変数と同じ名前の変数が内部のスコープに宣言される場合、外部のスコープの変数が非表示になります。たとえば、外部のスコープ (So) に myVar という変数を定義した後、外部のスコープにある内部のスコープ (Si) にも myVar 変数を定義する場合、内部のスコープ (Si) に定義した myVar にのみアクセスできます。この myVar により、スコープ So で定義された myVar がオーバーライドされます。

関連トピック

分割-結合のエクスポートとテスト

転送型ビジネス サービスと関連付けられている Oracle Service Bus サーバである場合、Oracle Service Bus サーバ上で分割-結合のエクスポートとテストを実行できます。分割-結合のエクスポートとテストには、以下の手順があります。

転送型ビジネス サービスの作成

分割-結合は、特定の転送型ビジネス サービスで使用されます。適切なビジネス サービスがない場合、分割-結合のエクスポートやテストを行う前に、ビジネス サービスを作成する必要があります。ビジネス サービスの作成には、次の 2 通りの方法があります。

  1. Workshop for WebLogic または Oracle Service Bus Console でビジネス サービスを手動で作成します。
  2. 分割-結合 (..flow) のメニューからビジネス サービスを次のように自動的に作成します。
    1. プロジェクト エクスプローラで分割-結合 (..flow) ファイルを右クリックし、[分割-結合] メニューを開きます。
    2. [Oracle Service Bus] を選択します。
    3. [ビジネス サービスの生成] を選択します。
    4. 新しいサービスに名前を付け、プロジェクトに保存します。

ビジネス サービスが作成されると、エラーがなければ、分割-結合をエクスポートできます。

注意 : 関連するビジネス サービスを分割-結合として同じ Oracle Service Bus プロジェクトに置いておくと作業上便利です。また、関連付けが容易になるように、ビジネス サービスに分割-結合と同じ名前を付けておくことも役に立ちます。

分割-結合ファイルのエクスポート

エラーがなければ、分割-結合を Oracle Service Bus サーバにエクスポートできます。

注意 : エラーは分割-結合エディタの [問題] ビューに表示されます。エラーのある分割-結合をエクスポートしようとすると、エクスポートは失敗します。

分割-結合のエクスポートには、次の 3 通りの方法があります。

  1. ビジネス サービスのメニューからのエクスポート
  2. 自動エクスポート
  3. 手動エクスポート
ビジネス サービスのメニューからのエクスポート

ビジネス サービスのメニューから分割-結合を直接エクスポートすることができます。この方法によるエクスポートでは Oracle Service Bus テスト コンソールが自動的に起動されるため、エクスポートとテストの両方を行う場合に便利です。ビジネス サービスのメニューからのエクスポートには、以下の手順が含まれます。

  1. プロジェクト エクスプローラで、エクスポートまたはテストを行うためにビジネス サービス (..biz ファイル) を右クリックします。
  2. [実行] を選択します。
  3. [サーバで実行] を選択します。[サーバで実行] ダイアログが表示されます。
  4. 既存のサーバを選択するか、新しいサーバを定義して、次の手順に進みます。
  5. [プロジェクトの追加と除去] ウィンドウでは、ビジネス サービスを含む Oracle Service Bus プロジェクトと、その他のすべての依存ファイルがコンフィグレーションとエクスポート用にあらかじめ選択されています。 依存ファイルなしでビジネス サービスをテストすることはできないので、これらのファイルは削除できません。そのため、分割-結合全体がエクスポートされます。
  6. [終了] を選択すると、Oracle Service Bus テスト コンソールが起動します。 これで、ビジネス サービスのテストができるようになりました。
自動エクスポート

分割-結合は Oracle Service Bus サーバに自動的にエクスポートできます。この方法を使用する場合、エクスポートされたファイルをテストするには、手動で Oracle Service Bus Console を起動する必要があります。自動エクスポートには、以下の手順があります。

  1. [ファイル|エクスポート] を選択します。
  2. [Oracle Service Bus] を選択します。
  3. [Oracle Service Bus サーバへのリソース] を選択します。これにより、リソースが Oracle Service Bus サーバにエクスポートされますが、Oracle Service Bus テスト コンソールは起動されません。テスト コンソールは、Oracle Service Bus Console アプリケーションから手動で起動する必要があります。
手動エクスポート

分割-結合は Oracle Service Bus サーバに手動でエクスポートできます。この方法を使用する場合、エクスポートされたファイルをテストするには、手動で Oracle Service Bus Console を起動する必要があります。手動エクスポートには、以下の手順があります。

  1. [ファイル|エクスポート] を選択します。
  2. [Oracle Service Bus] を選択します。
  3. [コンフィグレーション Jar としてのリソース] を選択し、次の手順に進みます。
  4. [Oracle Service Bus コンフィグレーション Jar エクスポート] ウィンドウで、以下のオプションをコンフィグレーションします。
    1. エクスポートするファイルを含んでいる Oracle Service Bus コンフィグレーション ファイルを選択します。
    2. プロジェクト全体をエクスポートするのか、個別のファイルをエクスポートするのかに応じて、[エクスポート レベル] を [プロジェクト] または [リソース] に設定します。エクスポート レベルに基づいて、下にあるツリーで選択できるものが変化します。
    3. コンフィグレーション JAR にエクスポートされるプロジェクトやリソースを選択します。
    4. 選択したファイルと依存関係にあるすべてのファイルをエクスポートする場合は、[依存関係を含める] を選択します。
    5. エクスポートされた JAR ファイルの送り先を参照します。
    6. [終了] をクリックして JAR ファイルをエクスポートします。
  5. Oracle Service Bus Console を介して JAR ファイルをインポートします。
注意 : Workshop for WebLogic から Oracle Service Bus Console に素早くアクセスするには、サーバを右クリックし、[Service Bus Console の起動] を選択します。

テスト コンソールによる分割-結合のテスト

分割-結合は、Oracle Service Bus テスト コンソールで、分割-結合を使用するビジネス サービスを実行することでテストできます。テストは、分割-結合エディタ内に行うか、または分割-結合を Oracle Service Bus サーバにエクスポートして行うことができます。IDE 内で分割-結合のテストを行うには、分割-結合を使用するビジネス サービスのメニューを使用して、ファイルをエクスポートする必要があります。

ビジネス サービスのメニューからのエクスポート

分割-結合は、ビジネス サービスのメニューから直接エクスポートしてテストすることができます。この方法を使用する場合、エクスポートはOracle Service Bus テスト コンソールの起動中にバックグラウンドで実行されます。ビジネス サービスのメニューからのエクスポートには、以下の手順が含まれます。

  1. プロジェクト エクスプローラで、エクスポートまたはテストを行うためにビジネス サービス (..biz ファイル) を右クリックします。
  2. [実行] を選択します。
  3. [サーバで実行] を選択します。[サーバで実行] ダイアログが開きます。
  4. 既存のサーバを選択するか、新しいサーバを定義して、次の手順に進みます。
  5. [プロジェクトの追加と除去] ウィンドウでは、ビジネス サービスを含む Oracle Service Bus プロジェクトと、その他のすべての依存ファイルがコンフィグレーションとエクスポート用にあらかじめ選択されています。ビジネス サービスは依存ファイルなしではテストできないので、依存ファイルを削除することはできません。

[終了] をクリックすると、Oracle Service Bus テスト コンソールが起動します。 これで、ビジネス サービスのテストができるようになりました。

注意 : この時点では、Oracle Service Bus テスト コンソールのみが表示されていますが、分割-結合全体が Oracle Service Bus サーバにエクスポートされています。

Oracle Service Bus デバッガの使用

Oracle Service Bus では、Eclipse デバッグ フレームワークを拡張して、プロキシ サービス メッセージ フローおよび分割-結合用のデバッグ機能を提供します。

Oracle Service Bus デバッガでは、Java コールアウトを処理できます。また、並列処理を使用する分割-結合でのマルチスレッド デバッグをサポートします。リモート サーバでデバッグを実行することもできます。

Oracle Service Bus デバッガを使用する 2 つの方法は次のとおりです。

デバッグの有効化

Oracle Service Bus のデバッグは、開発モードで実行されているサーバで自動的に有効になります。新しいドメインを作成するときは、以下のエントリが <domain>/bin/setDomainEnv スクリプトに追加されます。

set ALSB_DEBUG_FLAG=true

set ALSB_DEBUG_PORT=7453

Oracle Service Bus のデバッグ機能を無効にする場合は、ALSB_DEBUG_FLAG=false を設定します。

プロダクション モードでサーバを起動する場合、Oracle Service Bus のデバッグは自動的に無効になります。

標準デバッグの使用

プロキシ サービスまたは分割-結合をデバッグするには、それらをデバッグ モードで実行する必要があります (「Oracle Service Bus デバッガ起動コンフィグレーションの使用」で説明されているデバッガ起動コンフィグレーションを使用しない場合)。

プロキシ サービスまたは分割-結合をデバッグするには

  1. メッセージ フローまたは分割-結合でブレークポイントを設定して、それらのポイントでのテストの実行を自動的に一時停止します。フロー エディタでアクションを右クリックし、[ブレークポイントの切り替え] を選択します。
  2. デバッグ モードでサーバを起動します。サーバの起動時には、Workshop for WebLogic が、図 2-1 に示すデバッグ パースペクティブに自動的に切り替えられます。
  3. プロキシ サービス ファイルまたはビジネス サービス ファイルが開いてアクティブな状態で、Workshop for WebLogic の [実行|デバッグ|サーバでデバッグ] を選択します。
    1. [サーバでデバッグ] ウィンドウで、Oracle Service Bus コンフィグレーションをデプロイ済みのサーバ、またはコンフィグレーションをデプロイするサーバを選択し、ウィザードの手順を完了します。
    2. [デバッグ] オプションを使用すると、Java デバッガが自動的に有効になり、サービスの Java コールアウトを処理できます。

  4. Oracle Service Bus テスト コンソールが表示されます。テストを実行します。デバッグ ビューで実行スレッドを確認し、やり取りを行うことができます。テストを進める場合、デバッガでは、図 2-1 に示すように、テストの現在のステージがサービスのフロー ビューで強調表示されます。

テスト コンソールを使用してサービスのテストを実行したり、デバッガを使用したりする必要はありません。また、JMS メッセージを書き込む方法や、ファイル プロキシ サービスのディレクトリ内のファイルを削除する方法でサービスを実行することもできます。

リモート サーバでデバッグする場合は、そのリモート サーバでサービスを実行し、デバッグ ビューでテストを行います。リモート サーバがデバッグ モードではなく通常モードで実行されている場合は、「Oracle Service Bus デバッガ起動コンフィグレーションの使用」で説明されているデバッガ起動コンフィグレーションを使用します。

Oracle Service Bus デバッガのさまざまなデバッグ ビューの説明については、「デバッグ ビュー」を参照してください。

デバッグ ビュー

このセクションでは、サービスのデバッグ時に使用できるさまざまなビュー (図 2-1) について説明します。

図 2-1 プロキシ サービスのデバッグ

プロキシ サービスのデバッグ

デバッグ パースペクティブには、サービスのデバッグに使用する以下の主要なビューがあります。

ステップ アクションとブレークポイント

Eclipse デバッグ フレームワークを使用すると、デバッグ コードに対してステップ アクションを実行してインクリメンタルにデバッグできます。Eclipse ヘルプ システム (『Java Development User Guide』) の「Execution Control Commands」を参照してください。

ステップ アクションを使用してデバッグする場合でも、Oracle Service Bus デバッガは設定済みの各ブレークポイントで停止し、実行される現在のステップ アクションを無視します。

Oracle Service Bus デバッガ起動コンフィグレーションの使用

Oracle Service Bus デバッガ環境をより詳細に手動で制御する場合は、Oracle Service Bus デバッガ起動コンフィグレーションを使用します。起動コンフィグレーションは Eclipse の機能です。Oracle Service Bus デバッガ起動コンフィグレーションでは、[デバッグ] オプションによるデバッガの実行の自動化 (デバッグ パースペクティブの起動、デバッグ モードでのサーバの再起動、Java デバッガの起動) が行われず、ノーマル モードまたはデバッグ モードで実行されているサーバで、必要に応じてデバッガを接続および切断できます。

Java デバッガを Oracle Service Bus デバッガと共に使用して Java コールアウトを処理する場合は、サーバがデバッグ モードで実行されている必要があります。

Oracle Service Bus デバッガ起動コンフィグレーションを使用するには

  1. プロキシ サービス メッセージ フローまたは分割-結合にブレークポイントを設定します。
  2. 通常モードまたはデバッグ モードでサーバを起動します。ただし、Java デバッガを使用してフローから Java コールアウトを処理する場合は、デバッグ モードでサーバを起動します。
  3. Workshop for WebLogic のメニューで、[実行|デバッグ・ダイアログを開く] を選択します。
  4. [Oracle Service Bus デバッガ] をダブルクリックします。「New_configuration」というサブ項目が表示されます。この手順は、作成する起動コンフィグレーションごとに 1 回だけ実行します。
  5. 右ペインにデフォルトのサーバとポートが表示されます。このポートが、ドメインの setDomainEnv スクリプトの ALSB_DEBUG_PORT の値と一致するようにしてください。

    右ペインでは、起動コンフィグレーションの名前を変更したり、デバッグ ツールバーの項目に起動コンフィグレーションをショートカットとして追加したりすることもできます。

    1. サービスで Java コールアウトを使用する場合は、[リモート Java アプリケーション] をダブルクリックして「New_configuration」をコンフィグレーションすることにより Java デバッガを有効にします。
  6. 起動コンフィグレーションを選択した状態で、[デバッグ] ダイアログの [デバッグ] をクリックします。デバッガが接続されます。Java デバッガも使用する場合は、そのデバッガを選択して [デバッグ] をクリックします。
  7. デバッグ パースペクティブまたは必要なデバッグ ビュー ([デバッグ]、[ブレークポイント]、[変数] など) を開きます。
  8. サービスを実行します。
    • テスト コンソールでサービスを実行するには、[実行|サーバで実行] を使用します。
    • カスタム テスト クライアントを使用するなど、他の方法でサービスを実行することもできます。
  9. テストを行います。

デバッガを切断するには、[切断] アイコンをクリックします。[デバッグ] ダイアログでデバッガを再接続します。そのためには、起動コンフィグレーションを選択し、[デバッグ] をクリックするか、または前に説明した手順に従ってデバッグ ツールバーの項目にショートカットを作成します。

リモート デバッグ

リモート サービスをデバッグする場合は、サーバ コンフィグレーション ウィンドウ ([デバッグ]) でリモート サーバを選択するか、または起動コンフィグレーションでリモート サーバとポートを設定できます。デバッガをリモート サーバに接続したら、リモート サーバでサービスを実行し、ローカルのデバッグ パースペクティブでテストを行います。

サーバ共有

複数のユーザが 1 つのサーバ インスタンスを共有してデバッグする場合、デバッガに接続できるユーザは一度に 1 人だけです。他のユーザがデバッガに接続しようとしても、接続拒否エラーが発生します。


  ページの先頭       前  次