Connect:Direct プロセス定義ファイルのフォーマット

Connect:Direct® ブリッジ・エージェントの構成ディレクトリーにある ConnectDirectProcessDefinitions.xml ファイルでは、ファイル転送の一部として開始するユーザー定義 Connect:Direct プロセスを指定します。

ConnectDirectProcessDefinitions.xml ファイルは ConnectDirectProcessDefinitions.xsd スキーマに準拠する必要があります。 ConnectDirectProcessDefinitions.xsd スキーマ文書は、MFT インストール済み環境の MQ_INSTALLATION_PATH/mqft/samples/schema ディレクトリーにあります。 ConnectDirectProcessDefinitions.xml テンプレート・ファイルは、fteCreateCDAgent コマンドにより、エージェントの構成ディレクトリーに作成されます。

ファイル ConnectDirectProcessDefinitions.xml は、エージェントによって定期的に再ロードされ、ファイルへの有効な変更は、エージェントの動作に影響します。 デフォルトの再ロード間隔は 30 秒です。 この間隔は、agent.properties ファイルの xmlConfigReloadInterval エージェント・プロパティーを指定することにより変更できます。

スキーマ

次のスキーマは、ConnectDirectProcessDefinitions.xml ファイル内で有効なエレメントについて示します。

<schema targetNamespace="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions" 
        elementFormDefault="qualified" 	
        xmlns="https://www.w3.org/2001/XMLSchema" 
        xmlns:tns="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions">  	

    <element name="cdprocess" type="tns:cdprocessType"></element>  	

    <complexType name="cdprocessType"> 		
        <sequence> 			
            <element name="processSet" type="tns:processSetType" 
                     minOccurs="0"     maxOccurs="unbounded"></element> 		
        </sequence> 	
    </complexType>   	

    <complexType name="processSetType"> 		
        <sequence> 			
            <element name="condition" type="tns:conditionType" 
                     minOccurs="0"    maxOccurs="1" /> 			
            <element name="process"   type="tns:processType" 
                     minOccurs="1"    maxOccurs="1" /> 		
        </sequence> 	
    </complexType>  	 	

    <complexType name="conditionType"> 		
        <choice minOccurs="0" maxOccurs="unbounded"> 			
            <element name="match" type="tns:matchType" /> 			
            <element name="defined" type="tns:definedType" /> 		
        </choice> 	
    </complexType>  	 	

    <complexType name="matchType"> 		
        <attribute name="variable" type="string" use="required" /> 		
        <attribute name="value" type="string" use="required" /> 		
        <attribute name="pattern" type="tns:patternType" use="optional" /> 	
    </complexType>  		

    <complexType name="definedType"> 		
        <attribute name="variable" type="string" use="required" /> 	
    </complexType>  		

    <complexType name="processType"> 		
        <sequence> 			
            <element name="preTransfer"         type="tns:transferType" 
                     minOccurs="0"              maxOccurs="1" /> 			
            <element name="transfer"            type="tns:transferType" 
                     minOccurs="0"              maxOccurs="1" /> 			
            <element name="postTransferSuccess" type="tns:transferType" 
                     minOccurs="0"              maxOccurs="1" /> 			
            <element name="postTransferFailure" type="tns:transferType" 
                     minOccurs="0"              maxOccurs="1" /> 		
        </sequence> 	
    </complexType>  	 	

    <complexType name="transferType"> 		
        <attribute name="process" type="string" use="required" /> 	
    </complexType>  	

    <simpleType name="patternType"> 		
        <restriction base="string"> 			
            <enumeration value="regex" /> 		
            <enumeration value="wildcard" /> 		
        </restriction> 
    </simpleType> 

</schema>

ConnectDirectProcessDefinitions.xml ファイルについて

ConnectDirectProcessDefinitions.xml ファイルで使用するエレメントと属性を以下のリストにまとめます。
cdProcess
XML 文書のルート・エレメント。
processSet
一連のユーザー定義プロセスに関するすべての情報を格納したグループ・エレメント。
condition
processSet エレメントに含まれているプロセス・セットを使用するかどうかを決定するための転送の検査条件を格納したグループ・エレメント。
match
変数の値が特定の値に合致するかどうかを検査するための条件。
属性 説明
variable 変数を指定します。 この変数の値が value 属性の値と比較されます。 この変数は、組み込みシンボルです。 詳しくは、 ユーザー定義の Connect:Direct プロセスで使用する置換変数を参照してください。
variable 属性で指定する変数の値と突き合わせるパターンを指定します。
pattern value 属性で指定する変数の値と突き合わせるパターンを指定します。 pattern 属性の有効な値は以下のとおりです。
  • wildcard - ワイルドカードを使用
  • regex - Java 正規表現を使用
この属性は任意指定であり、デフォルトは wildcard です。
defined
変数が定義されているかどうかを検査するための条件。
属性 説明
variable 変数を指定します。 この変数が存在すると、この一致条件は満たされたことになります。 この変数は、組み込みシンボルです。 詳しくは、 ユーザー定義の Connect:Direct プロセスで使用する置換変数を参照してください。
process
一致が見つかったときに呼び出す Connect:Direct プロセスの場所に関する情報を含むグループ・エレメント。
transfer
転送要求の間に呼び出す Connect:Direct プロセス。
属性 説明
process オプション。 転送要求時に呼び出す Connect:Direct プロセスを含むファイルの名前を指定します。 ファイル・パスは、 Connect:Direct ブリッジ・エージェントの構成ディレクトリーからの相対パスです。 この属性はオプションです。デフォルトでは、 MFTによって生成されたプロセスを使用します。 IBM® WebSphere® MQ 7.5 以降の場合、このプロパティーの値には環境変数を含めることができます。 詳しくは、 MFT プロパティーの環境変数 を参照してください。

この例では、3 つの processSet エレメントがあります。

最初の processSet エレメントは、転送要求の %FTESNODE 変数の値がパターン Client* と一致し、 %FTESUSER 変数の値が Adminである場合に、 Connect:Direct ブリッジ・エージェントが agent_configuration_directory/AdminClient.cdp にある Connect:Direct プロセスを転送の一部として実行依頼することを指定します。

2 番目の processSet エレメントは、転送要求にパターン Client*と一致する値を持つ %FTESNODE 変数がある場合に、 Connect:Direct ブリッジ・エージェントが agent_configuration_directory/Client.cdp にある Connect:Direct プロセスを転送の一部として実行依頼することを指定します。 Connect:Direct ブリッジ・エージェントは、各 processSet エレメントを定義順に読み取り、一致項目が見つかると、最初の一致項目を使用し、その他の一致項目は検索しません。 1 番目と 2 番目の両方の processSet の条件に合致する転送要求の場合、Connect:Direct ブリッジ・エージェントは、1 番目の processSet で指定されているプロセスだけを呼び出します。

3 番目の processSet エレメントは、条件がないので、すべての転送に合致します。 1 番目と 2 番目の processSetの条件に合致しない転送要求の場合、Connect:Direct ブリッジ・エージェントは、3 番目の条件で指定されている Connect:Direct プロセスを実行します。 転送の一部として呼び出されるこのプロセスは、agent_configuration_directory/Default.cdp にあります。

<?xml version="1.0" encoding="UTF-8"?>
<tns:cdprocess xmlns:tns="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions"
               xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance"
               xsi:schemaLocation="http://wmqfte.ibm.com/ConnectDirectProcessDefinitions ConnectDirectProcessDefinitions.xsd">                 
                    	
    <tns:processSet> 		
        <tns:condition> 			
            <tns:match variable="%FTESNODE" value="Client*" pattern="wildcard" /> 			 
            <tns:match variable="%FTESUSER" value="Admin" pattern="wildcard" /> 		
        </tns:condition> 		
        <tns:process> 			
            <tns:transfer process="AdminClient.cdp" /> 		
        </tns:process> 	
    </tns:processSet> 	 	

    <tns:processSet> 		
        <tns:condition> 			
            <tns:match variable="%FTESNODE" value="Client*" pattern="wildcard" /> 		
        </tns:condition> 		
        <tns:process> 			
            <tns:transfer process="Client.cdp" /> 		
        </tns:process> 	
    </tns:processSet> 	 	

    <tns:processSet> 		
        <tns:process> 			
            <tns:transfer process="Default.cdp" /> 		
        </tns:process> 	
    </tns:processSet> 

</tns:cdprocess>