同一サーバー上に、Enterprise ServerとRIA Serverが同居している場合の注意点
いつも貴重な情報をありがとうございます。
■環境
現在、同一サーバー上に以下の構成でMagic xpa 4.7を運用しています:
① Enterprise Server
② RIA Server
※インストール順は①→②です。
APPLICATIONS_LISTの設定ですが、
記載方法として、ヘルプを引用すると、
エントリ名=<コマンド>,[<作業フォルダ>],[<OSのユーザ名>], [<OSのパスワード>],[<MRB の初期化時に実行される回数>],[<起動されるエンジンの最大数>]
下記のように指定しております。
[<MRB の初期化時に実行される回数>]=1
[<起動されるエンジンの最大数>]=0
■現象
RIA Serverを利用してAndroidハンディ端末でアプリを運用していますが、
月1回~数ヶ月に1回程度、アプリが突然終了し、端末上で利用できなくなる事象が発生しています。
(アプリ突然の終了時、mgerror.logには特段エラーなどは記録されていません)
その際は、Brokerモニターから該当アプリを手動で起動することで回避しています。
※障害発生時、確定情報ではありませんが、Enterprise Server側でリクエストが実行中の印象があります。
■質問
Brokerおよび mgrb.ini は、最初にインストールした①Enterprise Server側に設定しており、
RIA Serverのアプリケーションリストもそちらに記載しています。
このような構成で運用する際に、注意すべき点や推奨される設定などがあればご教示いただけますでしょうか?
また、同様の事象を経験された方がいらっしゃれば、対応策などもお伺いできれば幸いです。
また上記環境では、Brokerおよび mgrb.iniは最初にインストールした方にしか存在しない、という認識ですが、この辺もご指摘いただければ幸いです。
-
追加の質問で恐縮ですが、ご教示いただけますと幸いです。
■補足情報
Enterprise Server、RIA Serverともに、該当アプリの起動はBrokerサービス経由ではなく、WindowsタスクスケジューラーからMagicRuntime.exeをコマンド起動しています。■その理由
特にRIA Serverに関しては、Actianデータベースを使用しており、サービス起動を行うと以下のようなエラーが発生し、回避できない状況です:ロックファイルがオープンできません。X:\XXX\TANTOSHA.BTR
そのため、タスクスケジューラーによるコマンド起動を採用しています。■質問
できればサービス起動としたいのですが、その場合の構成上の注意点や推奨される設定などがあればご教示いただけますでしょうか?
また、Actian使用時に同様のエラーを経験された方がいらっしゃれば、回避策や設定変更の事例などもお伺いできれば幸いです。 -
Magic Userさん、
私のところでも、Enterprise ServerとRIA Serverを1台のサーバで運用している環境がありますが、mgrb.iniは製品ごとに別個で記述しています。ブローカーもそれぞれに添付されたものを稼働させています(下図参照)。

この環境で、もう何10年も稼働させていますが、エラーが出たことは一度もありません。
あと、ロックファイルがオープンできないとのことですが、ロックファイルは物理ファイルへのパスが間違っていたり、存在しないパスだったりするとエラーになります。排他制御はDBに一任したほうが管理がはるかに楽ですので、SQLの使用をお勧めします。
もしよろしければ、私どもの連載コーナーの下記の記事も参考にしてください。
第160回 Windows RIA とモバイル RIA 混在のポイント(2021年6月30日)
第138回 RIA Server と Enterprise Server を正しく同居させる方法(2019年8月31日)
第131回 1台のマシンに Magic 開発版と RIA Server を共存させる(2019年1月31日)
第4回 Pervasive.SQL のデータを SQL Server に移行する(2) (2008年12月30日)
第3回 Pervasive.SQL のデータを SQL Server に移行する (2008年12月8日) -
Tanda様
先日は貴重な情報をいただき、誠にありがとうございました。
ご回答いただいた内容につきまして、以下の点についてもう少し詳しくご教示いただけますと幸いです。
【Enterprise ServerとRIA Serverの同居について】
スクリーンショットから、Magic xpaの複数バージョン(3.1、3.2…4.8)が確認できました。私の理解としては以下の通りですが、合っておりますでしょうか。
- 各バージョンそれぞれにおいて、Enterprise ServerとRIA Serverが同一サーバ上に同居している
- 上記の場合、Tanda様環境では「先にインストールした製品のBrokerとmgrb.ini」に対して、サービス起動の設定をされている
上記の構成で問題なく運用できているか、差し支えなければご教示いただけますとありがたく存じます。
【ロックファイルについて】
「物理ファイルのパス設定」については、すでに正確に指定済みです。
現在の構成では、Actianデータベース保存先がドライブ割り当て方式となっておりますが、今後、以下の対応を検討しております:- UNCパス(\server\share)による指定
- サービス起動アカウントを、対象サーバへのアクセス権限を有するアカウントに変更
ご経験や知見がございましたら、アドバイスをいただけますと幸いです。
お忙しいところ恐れ入りますが、引き続きご教示のほどよろしくお願いいたします。
-
Magic Userさん、
> 上記の構成で問題なく運用できているか、差し支えなければご教示いただけますとありがたく存じます。
はい、その構成で問題なく運用できています。
> 1. UNCパス(\server\share)による指定
RIA ServerもEnterprise Serverも、DBへのアクセスはサーバロジックからしか発生しませんので、UNC指定は不要ですよ。
あと、Actian系のデータベースでは、できない機能が多すぎて、残念ながらもう20年くらい使用しておりません。
-
Tanda様 ご教示ありがとうございました。
【Enterprise ServerとRIA Serverの同居について】
私の認識と合っているとこのと、承知しました。引き続きその環境で運用進めます。
【ロックファイルについて】
Tanda様仰る通りですよね、中々データベース更改できない状況で今回のような課題に直面しております。
いろいろとありがとうございました。
サインインしてコメントを残してください。
コメント
5件のコメント