サーバー実行のためにマッピングを準備する

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  他の Altova サーバーとの統合 >

サーバー実行のためにマッピングを準備する

MapForce を使用してデザインされ、プレビューされるマッピングは、現在使用中のマシンと (データベースなどの) オペレーティングシステムの外部にあるリソースを参照することができます。更に、 MapForce 内では、全てのマッピングのパスがデフォルトで Windows スタイルの規則に従っています。また、 MapForce Server が作動するサーバーでは、マッピングがデザインされたマシンと同じデータベースをサポートしない場合ばあります。このため、サーバー環境でマッピングを実行するには、また、ターゲットマシンがソースマシンと異なる場合は特に、若干の準備が必要とされます。

 

メモ:ソースマシンという用語は、 MapForce がインストールされているマシンを指し、ターゲットマシンは、 MapForce Server 、または、 FlowForce Server がインストールされているマシンを指します。 最もシンプルなシナリオは、ソースマシンとターゲットマシンが同じコンピューターの場合を指します。最も複雑なシナリオは、MapForce が Windows マシンで作動し、 MapForce Server 、または、 FlowForce Server が Linux 、または、 macOS マシンで作動する場合を指します。

 

FlowForce Server にデプロイする前に MapForce 内でマッピングの検証を常に行うことが奨励されます。または、 MapForce Server 実行ファイルにコンパイルすることが奨励されます。。

 

MapForce Server がスタンドアロンで (FlowForce Server 無しで)作動する場合、必要とされるライセンスは、以下のとおりです:

 

ソースマシン上で、 MapForce Enterprise 、または、 Professional  Edition がマッピングをデザインし サーバー実行ファイル (.mfx) にコンパイルするために必要とされます。。
ターゲットマシン上で、 MapForce Server 、または、 MapForce Server Advanced Edition がマッピングを実行するために必要とされます。

 

MapForce Server が FlowForce Server 管理下で作動する場合、次の条件が適用されます:

 

ソースマシン上で、 MapForce Enterprise 、または、 Professional Edition がマッピングをデザインして、ターゲットマシンにデプロイするために必要です。
MapForce Server と FlowForce Server がターゲットマシンにインストールされている必要があります。MapForce Server の役割は、マッピングの実行であり、FlowForce の役割はマッピングを、スケジュールまたは、オンデマンドの実行、としての実行、エラーの処理、条件付きの処理、電子メールの通知などの機能を活用することのできるジョブとして使用できるようにすることです。
FlowForce Server は構成されているネットワークアドレスとポートで作動している必要があります。すなわち、「FlowForce Web Server」 サービスが開始され、構成されており、 HTTP (、または、構成されている場合は HTTPS )クライアントからの接続をファイアウォールにブロックされることなく受け入れる必要があります。 「FlowForce Server」 サービスも開始され、指定されたアドレスとポートで作動されている必要があります。
コンテナーの1つへのパーミッションが与えられている FlowForce Server ユーザーアカウントを所有している必要があります (デフォルトでは、/public コンテナーは認証済みのユーザーであればアクセスすることができます)。

 

全般的な注意点

 

スタンドアロン MapForce Server で作動するターゲットマシン上のマッピングを作動するには、全ての入力と出力ファイル、および、マッピングにより参照されるスキーマをターゲットマシンにもコピーする必要があります。 MapForce Server が FlowForce Server 管理化で作動する場合、ファイルを手動でコピーする必要はありません。 この場合、インスタンスとスキーマファイルはターゲットマシンにデプロイされたパッケージ内に含まれます。
マッピングに特定のデータベースドライバーを必要とするデータベースコンポーネントが含まれる場合、このようなドライバーはターゲットマシンにもインストールされている必要があります。例えば、マッピングが Microsoft Access データベースからデータを読み取る場合、 Microsoft Access 、または、 Microsoft Access Runtime がターゲットマシンにもインストールされている必要があります (https://www.microsoft.com/en-us/download/details.aspx?id=50040)。
マッピング を非 Windows プラットフォームにデプロイする場合、 ADO、 ADO.NET と ODBC データベース接続は自動的に JDBC に変更されます。ネイティブ SQLite とネイティブ PostgreSQL 接続は保存され、追加の構成を必要としません。次を参照: 「データベース接続」。
(例えば、  .dll 、または、 .class ファイルなどの)カスタム関数呼び出しをマッピングが含む場合、このような依存は、ランタイム前に既知ではないため、マッピングと共にデプロイされません。  この場合、これらを手動でターゲットマシンにコピーすることができます。 サーバー上の .dll または .class ファイルのパスは MapForce 内の「オプション」ダイアログボックスと同じである必要があります。例:

inc-mf-dll-dependencies

マッピングの一部は、ワイルドカードパスを使用して複数の入力ファイルを読み取ります。 この場合、 入力ファイル名はランタイム前に既知ではないため、デプロイされません。マッピングの実行に成功するには、入力ファイルがターゲットマシン上に存在する必要があります。
マッピングの出力パスにディレクトリが含まれている場合、これらのディレクトリはターゲットマシン上に存在している必要があります。それ以外の場合、マッピングを実行するとエラーが生成されます。この振る舞いは、「一時的なファイルに出力を生成する」オプションが有効化されている場合既存ではないディレクトリが自動的に生成される MapForce とは異なります。
マッピングが クライアント証明書を使用する HTTPS 認証を必要とする Web サービスを呼び出す場合、証明書をターゲットマシンに手動で移動する必要があります。次も参照してください:  。
Microsoft Access と SQLite などのファイルをベースにしたデータベースにマッピングが接続される場合、データベースファイルは手動でターゲットマシンに移動、または、参照することのできる共有されるディレクトリに保存される必要があります。 次を参照: 「ファイルをベースにしたデータベース」。

 

パスをポータブルにする方法

 

サーバー上でマッピングを実行する場合、マッピングが適用することのできる変換パスを使用していること、および、サポートされるデータベース接続を使用していることを確認してください。

 

パスを非 Windows オペレーティングシステムへ移動可能にするためには、 MapForce 内でマッピングをデザインする際に絶対パスの代わりに相対パスを使用してください。。 例えば、マッピングが必要とする全ての入力、または、出力ファイルマッピングと同じディレクトリにをコピーすることができ、 ファイル名別に参照することができます。 更に、MapForce Server と FlowForce Server は、すてべの相対パスが解決される、いわゆる「作業ディレクトリ」をサポートします。。 作業ディレクトリは以下のとおりマッピングのランタイムに指定することができます:

 

FlowForce Server では、 ジョブの「作業ディレクトリ」 パラメーターを編集します。
MapForce Server API では、COM と .NET API の WorkingDirectory プロパティにより、または、Java API の setWorkingDirectory メソッドにより行うことができます。
MapForce Server コマンドライン では、作業ディレクトリはコマンドシェルの現在のディレクトリです。

 

データベース接続に関しては、 ADO、ADO.NET、 および ODBC 接続が Linux と macOS マシン上ではサポートされないことに注意してください。このため、ターゲットマシンが Linux 、または、 macOS の場合、 FlowForce にマッピングをデプロイする場合、または、マッピングを MapForce Server 実行ファイルにコンパイルする場合、このような接続は、 JDBC に変換されます。 この場合、マッピングのデプロイ、または、サーバー実行ファイルにコンパイルする前に次のオプションがあります:

 

MapForce 内では、データベースへの JDBC 接続を作成する (次を参照: JDBC 接続の設定)。
MapForce 内では、 データベースコンポーネントの 「JDBC-固有の設定」セクション内の JDBC データベース 接続の詳細を記入する。

 

PostgreSQL 、または、 SQLite データベースへのネイティブな接続をマッピングが使用する場合、, ネイティブな接続が保持され、 JDBC 変換は実行されません。マッピングがファイルベースのデータベースへ接続する場合、 Microsoft Access と SQLite などの追加構成が必要とされます 下の「ファイルをベースにしたデータベース」 を参照してください。

 

データベース接続

ADO、ADO.NET、 および ODBC 接続は Linux と macOS マシンではサポートされていないことに注意して下さい。 このため、ターゲットマシンが Linux または macOS の場合、このような接続は、マッピングが FlowForce にデプロイされると、または、 MapForce Server 実行ファイルにマッピングをコンパイルすると、 JDBC に変換されます。この場合、マッピングをデプロイ、または、サーバー実行ファイルにマッピングをコンパイルする前に以下のオプションを使用することができます:

 

MapForce 内では、データベースへの JDBC 接続を作成します
MapForce 内では、データベースコンポーネントの「JDBC 固有の設定」 セクション内の JDBC データベース接続の詳細に入力してください。 。

 

マッピングが PostgreSQL または SQLite データベースへのネイティブな接続を使用する場合、ネイティブな接続が保存され、 JDBC 変換は発生しません。 。 マッピングが Microsoft Access と SQLite などのファイルベースのデータベースに接続される場合、追加構成が必要とされます。下記の「ファイルベースのデータベース」を参照してください。

 

JDBC 接続を使用してマッピングを作動することは、 Java Runtime Environment または Java Development Kit がサーバーマシンにインストールされていることを必要とします。Oracle JDK または Oracle OpenJDK などのオープンソースビルドであることができます。

 

JAVA_HOME 環境変数は JDK インストールディレクトリを指している必要があります。
Windows 上では、 Windows レジストリ内で検出された Java Virtual Machine パスは JAVA_HOME 変数よりも高い優先順位を有します。
JDK プラットフォーム (64-ビット、32-bit) は MapForce Server を同じである必要があります。それ以外の場合は、理由があるエラーが挙げられる可能性があります: 「JVM へのアクセスが不可能です。」

 

 

Linux または macOS 上での JDBC 接続のセットアップ:

1.データベースベンダーにより提供される JDBC ドライバーをダウンロードして、オペレーティングシステムにインストールします。 オペレーティングシステムが32-ビットで作動する場合は32-ビット版バージョンを、オペレーティングシステムが 64-ビットで作動する場合は 64-ビット版バージョンを選択してください。
2.環境変数を JDBC ドライバーがインストールされている場所に設定してください。通常、 CLASSPATH 変数と、必要があればその他複数を設定します。どの特定の環境変数が構成されるかを検出するには、 JDBC ドライバーに付随するドキュメントを確認してください。

 

メモ:macOS では、システムは JDBC ライブラリが /Library/Java/Extensions ディレクトリにあることを必要とします。ですから、 JDBC ドライバーをこの場所でアンパックすることが奨励されます。 それ以外の場合、システムを構成し、 JDBC ライブラリが JDBC ドライバーをインストールしたパスを検索するようにする必要があります。

 

macOS 上での Oracle Instant Client 接続

macOS 上で、Oracle Database Instant Client を介して Oracle データベースに接続する場合これらの命令を適用することができます。必要条件:

 

Java 8.0 または、以降がインストールされている必要があります。 Mac マシンが Java 8 以前の Java バージョンで作動作動している場合、 「JDBC Thin for All Platforms」 ライブラリを介して接続し、以下の命令を無視することも可能です。
Oracle Instant Client がインストールされている必要があります。Oracle Instant Client を Oracle の公式ダウンロードページからダウンロードすることができます。 Oracle ダウンロードページでは複数の Instant Client パッケージがあることに注意してください。 Oracle Call Interface (OCI) サポートのあるパッケージが選択されていることを確認してください (例えば Instant Client Basic)。また、オペレーティングシステムが32-ビットで作動する場合は32-ビット版バージョンを、オペレーティングシステムが 64-ビットで作動する場合は 64-ビット版バージョンを選択してください。

 

ダウンロードした後、 Oracle Instant Client をアンパックし、インストーラと共にパックされているプロパティリストファイル (.plist) を編集すると、以下の環境変数が対応するドライバーパスをポイントします。例えば:

変数

サンプル値

CLASSPATH

/opt/oracle/instantclient_11_2/ojdbc6.jar:/opt/oracle/instantclient_11_2/ojdbc5.jar

TNS_ADMIN

/opt/oracle/NETWORK_ADMIN

ORACLE_HOME

/opt/oracle/instantclient_11_2

DYLD_LIBRARY_PATH

/opt/oracle/instantclient_11_2

PATH

$PATH:/opt/oracle/instantclient_11_2

メモ:使用中のオペレーティングシステムで Oracle Instant Client ファイルがインストールされている場所で上記のサンプル値を編集してください。

 

ファイルをベースにしたデータベース

Microsoft Access と SQLite などのファイルをベースにしたデータベースは、FlowForce Server にデプロイされるパッケージ内に含まれません、または、コンパイルされた MapForce Server 実行ファイルにも含まれません。このため、 ソースとターゲットマシンが同じでは内場合、次のステップに従ってください:

 

1.MapForce 内では、マッピングを右クリックして、「生成されたコード内でパスを絶対パスにする」のチェックボックスのチェックを解除します 。
2.マッピング上のデータベースコンポーネントを右クリックし、相対パスを使用してデータベースファイルへの接続を追加します。 。マッピングデザイン (.mfd ファイル) をデータベースファイルと同じディレクトリに保存し、ファイル名別(相対パスを使用して)にマッピングから参照することによりパスに関連した問題を回避することができます。  .
3.データベースファイルをターゲットマシン内のディレクトリにコピーします ( "作業ディレクトリ"と呼ぶことにします)。以下に表示されるようにマッピングを実行する際必要とされるため、このディレクトを忘れないでください。

 

このようなマッピングをサーバー上で実行するには以下を行います:

 

FlowForce Server コントロール下で作動する MapForce Server によりマッピングが実行される場合、FlowForce Server ジョブが前に作成された作業ディレクトリをポイントするように構成します。 データベースファイルは作業ディレクトリ内に存在する必要があります。 例えば、次を参照してください: FlowForce ドキュメントトピックWeb サービスとしてジョブを公開する (http://manual.altova.com/FlowForceServer/FlowForceServerAdvanced/fs_example_web_service.htm)。
コマンドラインでスタンドアロン MapForce Server によりマッピングが実行される場合、MapForce Server 上で run コマンドを呼び出す前に、 現在のディレクトリを作業ディレクトリに変更します (例えば、 cd path\to\working\directory) 。例えば、Web サービスとしてジョブを公開するを参照してください。
マッピングがスタンドアロン MapForce Server によりコマンドラインで実行される場合、MapForce Server の run コマンドを呼び出す前に、現在のディレクトリを作業ディレクトリに変更してください (例えば、 cd path\to\working\directory)
MapForce Server API によりマッピングが実行される場合、作業ディレクトリをプログラミング的にマッピングを実行する前に設定します。これを効果的に行うために、 COM と .NET API 内の MapForce Server オブジェクトのためにプロパティ WorkingDirectory を使用することができます。Java API 内では、メソッド setWorkingDirectory を使用することができます。

 

ローカルネットワーク上の Windows マシン上にソースとターゲットマシンが存在する場合、共有されるディレクトリからデータベースファイルを読み取るためにマッピングを以下のように構成することができます:

 

1.ソースとターゲットマシンによりアクセスすることのできる共有されるディレクトリにデータベースファイルを保管します。
2.マッピング上のデータベースコンポーネントを右クリックし、絶対パスをしようしてデータベースファイルに接続を追加します。

 

グローバルリソース

 

直接なパス、または、データベース接続の代わりにグローバルリソースへの参照を含むマッピング、このような参照はマッピングをに サーバー実行ファイル (.mfx) コンパイルする場合、または、FlowForce Server にマッピングをデプロイする場合、に保管されます 。

 

メモ:FlowForce Server 現在グローバルリソースをサポートしません。 FlowForce Server 管理下で作動する MapForce Server を使用してマッピングを実行する場合、グローバルリソースを使用しないでください。

 

XBRL タクソノミパッケージ

 

マッピングが FlowForce Server への XBRL タクソノミパッケージを参照する場合  MapForce はマッピングから全ての外部レファレンスを集め、現在の構成と現在インストールされているタクソノミパッケージを使用して解決します。タクソノミパッケージを指す解決された外部レファレンスが存在する場合、タクソノミパッケージはマッピングと共にデプロイされます。 FlowForce Server は、そのパッケージを、デプロイ時と同様、マッピングを実行するために使用します。FlowForce Server により使用されるタクソノミパッケージを更新するには、 MapForce 内で変更し、マッピングをもう一度デプロイします。

 

MapForce Server のルートカタログは、ターゲットマシン内でタクソノミの解決方法に影響を与えます。ルートカタログは、MapForce Server インストールディレクトリに対して相対的に以下のパスで見つけることができます : etc/RootCatalog.xml.

 

MapForce Server のルートカタログがこのようなカタログを含んでいない場合、または、同 URL じプレフィックスのために定義されているパッケージを含まない場合、マッピングと共にデプロイされるタクソノミパッケージが使用されます。 MapForce Server のルートカタログはデプロイされたタクソノミよりも優先順位が高いです。

 

MapForce Server がスタンドアロンで (FlowForce Server 無しで)作動する場合、次に用にマッピングにより使用されるルートカタログを指定することができます:

 

コマンドラインでは、オプション -catalogrun コマンドに追加することが可能です。
MapForce Server API で、メソッド SetOption を呼び出し、文字列 「catalog」 を最初の引数として、ルートカタログを2番目の引数として与えます。

 

マッピングがテーブルリンクベースを使用する XBRL コンポーネントである場合、タクソノミパッケージ 、または、 タクソノミパッケージ構成ファイルがランタイムでマッピングに提供される必要があります:

 

MapForce Server コマンドラインにて、オプション --taxonomy-package 、または、 --taxonomy-packages-config-filerun コマンドに追加します。
MapForce Server API 内で、メソッド SetOption を呼び出します。最初の引数は、 「taxonomy-package」 、または、 「taxonomy-packages-config-file」である必要があります。2番目の引数は、タクソノミパッケージ (、または、 タクソノミパッケージ構成) ファイルへの実際のパスである必要がありますファイル。

(C) 2019 Altova GmbH