MZ Platformとは › 掲示板 › MZプラットフォームユーザー会掲示板 › アプリケーション間のデータ連携について
- このトピックは、 12 返信、 2 投稿者 です。最終更新日: 6 ヶ月, 2 週 前 ORIteck CO., LTD
-
著者投稿
-
2024年4月24日 at 9:49 AM #7516ORIteck CO., LTD一般参加者
同じ端末で起動している複数のMZアプリケーション間のデータ連携は可能でしょうか?
Aアプリのテキストコンポーネントの情報をBアプリから取得するなどの場合です。2024年4月24日 at 11:54 AM #7517MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
データ連携の設定をすることによって可能です。
C:\MZPlatform\4.0\docs\manualフォルダの中に『データ連携導入手順書.pdf』がございます。
(こちらのリンクからもご覧いただけます。
https://ssl.monozukuri.org/mzplatform/mzpf_docs/4.0/manual/manual5.pdf
)まずはこの手順書をご覧いただき、設定をお試しいただけないでしょうか。
C:\MZPlatform\4.0\etc内のiniファイルの設定、コンポーネント属性の設定、コンポーネント連携、転送処理の設定などが必要になります。ご不明な点、ご要望等をお知らせいただければ幸いです。
お手数をお掛けいたしますが、どうぞよろしくお願い申し上げます。2024年4月24日 at 1:29 PM #7518ORIteck CO., LTD一般参加者FAQ90を参考に試しているのですが思うようにいかない状況で確認した次第です。
Platform.ini/hostsfile.ini/AccessPolicy.iniは全て関連していないと連携できない認識ではいるのですが先ず確認させていただきたいのがPlatform.iniの設定で下記ようにするとビルダーからアプリケーションがロードできなくなるのですがこの症状は当然の結果でしようか?platfrom.iniだけの設定です。
UseDataCooperation=true
UseOnlyLightDataCooperation=true
PlatformName=Platform01
LocalhostAddress=keiei-01-PC (←PCの名前)
AccessPolicyFile=PlatformNameとLocalhostAddressは両方設定すると症状がでます、どちらか片方では問題ありません。
症状は、ビルダーを起動しロードボタンを押下するとエラーダイアログが表示(タイトル及びメッセージは表示されない)ビルダーを閉じるとエラーダイアログ表示(添付ファイル参照)よろしくお願いします。
添付ファイル:
2024年4月24日 at 5:47 PM #7522MZPlatformユーザー会サイト管理者ご連絡ありがとうございます。
エラーメッセージから判断すると、読み取り権限やセキュリティ関連の事象かと思われるのですが、手元ではファイルのロードができないというエラーが再現できずにおります。
お忙しいところ恐縮ですが、添付のiniファイルを設定してお試しいただけないでしょうか。
PlatformName=Platform01
LocalhostAddress=127.0.0.1
の部分を変更しているだけです。
また、hostsfile.ini、AccessPolicy.iniも複数のビルダーにアクセスするのでなければ、設定は必要ない場合もありますが、念のためお送りします。iniファイルの設定をお試しいただいてもエラーが発生する場合は、お手数を掛けて申し訳ございませんが、C:\MZPlatform\4.0\log内にあるエラーログをお送りいただけないでしょうか。
ご面倒をお掛けいたしますが、どうぞよろしくお願い申し上げます。
添付ファイル:
2024年4月25日 at 8:31 AM #7524ORIteck CO., LTD一般参加者fileありがとうございます。
Platform.ini内のjava.security.policy=が何故か未記入でした。
送信いただいたfileと同様とすることで当初の問題は改善されましたが下記エラーが発生してしまいます。ビルダーを起動→ロードボタン押下→アプリケーション選択→開く押下 ←当初の問題はOK
続けてビルダーを起動すると「不明なエラーが発生しました」のエラーダイアログが表示される(送信いただいたPlatform.iniでも発生する)エラーログ添付します、よろしくお願いいたします。
添付ファイル:
2024年4月25日 at 11:22 AM #7526MZPlatformユーザー会サイト管理者お問い合わせありがとうございます。
PlatformNameとLocalhostAddresを設定したiniファイルを使い起動したアプリケーションビルダーは、通信の準備をした状態でデフォルトでは1099のポートを使用し立ち上がっていることになります。
したがって、もう一つビルダーを立ち上げようとすると、アドレス及びポート番号が既に使われているというエラーが発生し、起動できません。検証用にもう一つアプリケーションビルダーを起動したい場合は、例えばC:\MZPlatformフォルダ内の「4.0」と「Java」のフォルダーを別なフォルダーにコピーし、こちらのPlatform.iniをデータ連携用に設定し、PFBuilder.exeをクリックして起動することが考えられます。
元々インストールされていたMZの方には外部連携機能は設定せず、コピーした方を検証用に使用するということです。
「4.0」と「Java」は同じフォルダ階層に置いてください。全てのファイルをコピーする必要はないのですが、容量に問題が無ければそのままコピーしてしまってください。また、同じPC内で2つのMZに外部連携機能は設定したい場合は、一方のPlatfrom.iniファイルのRMIPortに違うポート番号(例:3000)を設定してください。
以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。2024年4月25日 at 12:07 PM #7527ORIteck CO., LTD一般参加者ご回答ありがとうございます。
このご説明ですとPlatformNameとLocalhostAddresを設定したiniファイル使用でも、アプリケーションローダーからであれば同一PC内で複数アプリが起動できると言うことでしょうか?
アプリケーションローダーからの起動でも2つ目のアプリ起動時は同じエラーが発生します。
2024年4月25日 at 4:34 PM #7528MZPlatformユーザー会サイト管理者説明が不足していて申し訳ございません。
アプリケーションローダーでもビルダーでも、iniファイルに指定されているjava環境を使用しているので、データ連携用の設定をしている場合には、同一の環境で複数立ち上げることはできません。
前回検証用には実行環境をコピーして、元々インストールされていたものとは別環境にすることを提案いたしましたが、データ連携用にさらに複数のローダーあるいはビルダーを起動したいという場合には、一々コピーする訳にもいかないので、起動時のオプションにiniファイルを指定して起動する方法をご案内します。
1)etcフォルダの中にPlatformName、LocalhostAddres、RMIPortを指定したiniファイルを別名を付けて保存します。例えばPlatform01.iniとします。
2)PFBuilder.exe、(あるいはPFLoader.exe)のショートカットを作成します。
3)ショートカットを右クリック>プロパティを選択します。
4)プロパティ画面のショートカットタブをクリックし、リンク先項を以下のように書き換えます(ビルダーの場合)
C:\MZPlatform\4.0\PFBuilder.exe -ini etc/Platform01.ini
5)ショートカットをクリックすると、Platform01.iniを使ってビルダーが起動するようになります。
6)コマンドプロンプトを立ち上げて「C:\MZPlatform\4.0\PFBuilder.exe -ini etc/Platform01.ini」と入力しても、起動することができます。データ連携用にビルダー、ローダーを起動する数だけ、他と競合しないRMIPort番号を設定したiniファイルを作成し、別名で保存します。
以上お試しいただき、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。2024年4月26日 at 9:32 AM #7529ORIteck CO., LTD一般参加者詳細のご連絡ありがとうございます。
実現したいことについてはサンプルアプリの検証ですが問題なく実行できることを確認しました。ありごとうございます。
現状の.iniの設定について確認させてください。
①データ連携用のアプリ起動用(データを利用される側)
ご提案の通りPlatform01.iniを作成しました
PlatformName=Platform01
LocalhostAddress=127.0.0.1
RMIPort=3000
※複数のデータ連携用のアプリを同時起動する場合は対応する.iniがそれぞれ必要②通常のアプリ起動用(データを利用する側)
※複数起動可能でデータ連携用のアプリ(コンポーネント)と連携することが可能
・Platform.int
PlatfromName=未記入
LocalhostAddress=未記入
RMIPort=未記入・hostfile.int
Platfrom01 127.0.0.1:3000
※Platform.ini(通常起動アプリ)はPlatform01と連携(複数の場合は追加)・AccessPolicy.ini
allowAll=local,Platform01
※Platform.ini(通常起動アプリ)はPlatfrom01との連携を全て許可(複数の場合は追加)この設定と理解で実現できている状態ですが問題ないでしょうか?
2024年4月26日 at 3:36 PM #7530MZPlatformユーザー会サイト管理者ご確認ありがとうございます。
FAQ実現したいFAQ実現したい処理Q90のサンプルファイルは、アプリケーションを1つだけ立ち上げて、メインフレームとサブフレームとの間で連携しているので、複数のアプリケーション間で連携するのとは少し違っています。
独立した2つのアプリケーション間でデータを連携したい場合は、送信側、受信側それぞれにPlatfromNameとLocalhostAddress、RMIPortを記入したPlatfrom.iniをご用意ください。例えば
PlatformName=Platform01
LocalhostAddress=127.0.0.1
RMIPort=未記入(デフォルト1099)
PlatformName=Platform02
LocalhostAddress=127.0.0.1
RMIPort=3000
となります。以下3つの場合に分けて考えます。
1.アプリケーションビルダーまたはローダーを1つ起動し、一つのアプリケーション内のメインフレーム、サブフレーム間でデータを取得する場合。FAQ実現したい処理Q90のサンプルファイルのような状況です。
この場合、一つのPlatform.iniを編集し、PlatformNameとLocalhostAddressを設定します。hostsfile.iniとAccessPolicy.iniの設定はしなくても起動できます。2.同一のJava環境でビルダーまたはローダーを複数起動する場合。2つのアプリケーション間でデータの連携をする場合には、双方のビルダーまたはローダーに連携の設定をしておく必要があります。
iniファイルはデータ連携を利用して起動する数だけ作成し、ポート番号は他と競合しない任意の番号を設定します。例えばPlatform01.iniとPlatform02.iniが必要です。また、hostsfile.iniとAccessPolicy.iniもPlatform01とPlatform02について記述します。
hostsfile.iniは手順書の記述例に倣って記述します。
AccessPolicy.iniのallowAllの項は、例えば「allowAll=local, Platform01, Platform02」となります。3.2台の別々の環境のPCで起動する場合、ほぼ2と同じ考え方になります。
ポート番号は同一PC内で重ならなければ、他のPCと同じ番号も利用できます。以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。 -
著者投稿
- このトピックに返信するには、ログインしてください。