FTPを利用したファイル転送を行う場合、サービスエンドポイント定義に、ファイル転送で必要な情報を定義します。
ファイル転送の定義には、以下の種類があります。
受信
送信
受信側サービスエンドポイント定義の指定例は、以下のとおりです。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?> <EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd"> <Endpoint name="endpoint01" sync="false"> <SequenceName>gyoumu01</SequenceName> <ServiceName>service001</ServiceName> <QueueName>ESIInboundQueue</QueueName> </Endpoint> <Endpoint name="endpoint02" sync="false"> <SequenceName>gyoumu02</SequenceName> <ServiceName>service002</ServiceName> <QueueName>ESIInboundQueue</QueueName> </Endpoint> <Endpoint name="endpoint03" sync="false"> <SequenceName>gyoumu03</SequenceName> <ServiceName>service003</ServiceName> <QueueName>ESIInboundQueue</QueueName> </Endpoint> </EndpointList> |
キー名 | 説明 | 指定例 | |
---|---|---|---|
1 | Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint01 | |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false | |
SequenceName | シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。 | gyoumu01 | |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service001 | |
QueueName | JMSキュー名を指定します。 | ESIInboundQueue | |
2 | Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint02 | |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false | |
SequenceName | シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。 | gyoumu02 | |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service002 | |
QueueName | JMSキュー名を指定します。 | ESIInboundQueue | |
3 | Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint03 | |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false | |
SequenceName | シーケンス名を指定します。シーケンス定義に指定したシーケンス名を指定してください。 | gyoumu03 | |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service003 | |
QueueName | JMSキュー名を指定します。 | ESIInboundQueue |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service001" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="filename">/FTPhome/recvdata.dat</Property>
<Property name="watch">true</Property>
<Property name="split">CR</Property>
<Property name="split_CR">0x0D0A</Property>
<Property name="jmsr.messageAccumulate">true</Property>
</PropertyList>
</Service> |
キー名 | 説明 | 指定例 |
---|---|---|
Service | ||
name | サービス名を指定します。 | service001 |
type | “filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。 | filewatch |
Property | ||
filename | 監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。 | /FTPhome/recvdata.dat |
watch | ファイルを監視するかどうかを指定します。
| true |
split | ファイル分割の種類を指定します。
| CR |
split_CR | “split”に“CR”を指定した場合、監視ファイルのデータの改行コードを指定します。
| 0x0D0A |
jmsr.messageAccumulate | JMS-Rキューを使用する場合、メッセージを蓄積するかどうかを指定します。
| true |
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service002" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="filename">/FTPhome/recvdata2.dat</Property>
<Property name="watch">true</Property>
<Property name="split">Size</Property>
<Property name="split_size">1024</Property>
<Property name="jmsr.messageAccumulate">true</Property>
</PropertyList>
</Service> |
キー名 | 説明 | 指定例 |
---|---|---|
Service | ||
name | サービス名を指定します。 | service002 |
type | “filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。 | filewatch |
Property | ||
filename | 監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。 | /FTPhome/recvdata2.dat |
watch | ファイルを監視するかどうかを指定します。
| true |
split | ファイル分割の種類を指定します。
| Size |
split_size | “split”に“Size”を指定した場合、分割するファイルサイズを指定します。 | 1024 |
jmsr.messageAccumulate | JMS-Rキューを使用する場合、メッセージを蓄積するかどうかを指定します。
| true |
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service003" type="filewatch" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="watchtype">ackfile</Property>
<Property name="filename">/FTPhome/*.dat</Property>
<Property name="ackfilename">/FTPhome/$[FILENAME].ack</Property>
</PropertyList>
</Service> |
キー名 | 説明 | 指定例 |
---|---|---|
Service | ||
name | サービス名を指定します。 | service003 |
type | “filewatch”(ファイルの受信を監視し、シーケンスを開始)を指定します。 | filewatch |
Property | ||
watchtype | ファイルの監視方法を指定します。以下のいずれかを指定します。
| ackfile |
filename | 監視対象のファイル名を指定します。ファイル名は、絶対パスで指定してください。 | /FTPhome/*.dat |
ackfilename | 監視する完了ファイルのファイルパス(絶対パス)を指定します。ファイルパス内の監視完了ファイル名には、埋込み文字列“$[FILENAME]”を必ず指定してください。埋込み文字列“$[FILENAME]”は、[filename]で指定したファイル名に置き換えられます。 | /FTPhome/$[FILENAME].ack |
シーケンス定義やメディエータファンクション定義を変更する場合、ほかの監視部分は動作させたまま、一部分だけを監視対象からはずしたいときは、Property項目の“watch”に“false”を指定してください。“false”を指定した定義は、監視対象外となり動作しません。
監視対象のファイルを指定する“filename”は、複数のサービスエンドポイントで同じファイルを指定しないでください。複数のサービスエンドポイントから同じ監視対象のファイルを共有した場合は、どのサービスエンドポイントから実行されるか保証されません。
送信側サービスエンドポイント定義の指定例は、以下のとおりです。
指定例
サービスエンドポイント定義
<?xml version="1.0" encoding="UTF-8" ?>
<EndpointList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-endpoint.xsd">
<Endpoint name="endpoint02" sync="false">
<ServiceName>service002</ServiceName>
<QueueName>ESIFTPQueue</QueueName>
</Endpoint>
</EndpointList> |
キー名 | 説明 | 指定例 |
---|---|---|
Endpoint | ||
name | サービスエンドポイント名を指定します。 | endpoint02 |
sync | サービスエンドポイントの同期タイプ“false”(非同期通信)を指定します。 | false |
ServiceName | サービス名を指定します。サービス情報に指定したサービス名を指定してください。 | service002 |
QueueName | JMSキュー名を指定します。 | ESIFTPQueue |
サービス情報
<?xml version="1.0" encoding="UTF-8" ?>
<Service name="service002" type="ftpsend" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esi-service.xsd">
<PropertyList>
<Property name="dirname">/FTPhome/</Property>
<Property name="filename">senddata_$[DATE].dat</Property>
<Property name="sendackfile">true</Property>
<Property name="ackdirname">/FTPhome/</Property>
<Property name="ackfilename">$[FILENAME].ack</Property>
<Property name="hostname">127.0.0.1</Property>
<Property name="port">21</Property>
<Property name="username">user</Property>
<Property name="password" secret="true">password</Property>
<Property name="merge">0</Property>
<Property name="overwrite">true</Property>
<Property name="statuscheck">true</Property>
<Property name="jmsr.messageAccumulate">true</Property>
</PropertyList>
</Service> |
キー名 | 説明 | 指定例 | |
---|---|---|---|
Service | |||
name | サービス名を指定します | service002 | |
type | “ftpsend”(シーケンスの実行結果をFTP送信)を指定します。 | ftpsend | |
Property | |||
dirname | 送信先のディレクトリ名を指定します。 | /FTPhome/ | |
filename | 送信先のファイル名を指定します。 | senddata_$[DATE].dat | |
sendackfile | 送信完了ファイルを転送するかどうかを指定します。以下のいずれかを指定します。
| true | |
ackdirname | 送信する完了ファイルのディレクトリを指定します。 | /FTPhome/ | |
ackfilename | 送信する完了ファイルのファイル名を指定します。ファイル名にはアスキーコードを指定してください。 | $[FILENAME].ack | |
hostname | 接続先のサーバ名、またはIPアドレスを指定します。 | 127.0.0.1 | |
port | 接続先のポート番号を指定します。標準は、“21”です。 | 21 | |
username | 接続サーバのログインユーザ名を指定します。 | user | |
password | 接続サーバのログインパスワードを指定します。 | password | |
| secret | プロパティの情報(パスワードなど)を暗号化するかどうかを指定します。
| true |
merge | ファイルを集約するかどうかを指定します。
| 0 | |
overwrite | 送信先に同一のファイル名が存在した場合、上書きするかどうかを指定します。
| true | |
statuscheck | ファイル転送結果を確認するかどうかを指定します。
通常は“true”を指定してください。 | true | |
jmsr.messageAccumulate | メッセージを蓄積するかどうかを指定します。
| true |
FTPのファイル転送モードには、アスキー転送モードとバイナリ転送モードの2つがあります。ISIでは、バイナリ転送だけをサポートしています。
statuscheckプロパティが“false”の場合は、転送結果の確認は行われません。書き込み権限がないなどの理由でファイル転送に失敗している場合でも、esiftpsendコマンドは正常終了します。
Interstage CollaborationRing 業務連携機能(内蔵FTP集信監視機能)を利用してEAIと連携する場合には、statuscheckプロパティを“false”にし、かつoverwriteプロパティを“true”にしてください。