クラサバとモバイルRIAを1本のソースに出来ますか?
モバイルRIAはxpa2.5で客先提供した事があります。
その時は、モバイル専用のソースとしておりました。
今回xpa4でクラサバのソースと、モバイルのソースを一つにプロジェクト内に
まとめようと思っています。
入れ替えのし易さなどを考慮し、同じecfですけど別場所に保管するなどするつもりです。
同様にクラサバとモバイルRIAと同一プロジェクト内にしておられる方はいらっしゃいますか?
-
クラサバの場合、
メインPGのタスク前から、メニューPGを実行するので
INIファイル
[MAGIC_ENV]DeploymentMode = O の時だけ、オンラインタスクのメニューPGを
呼ぶようにしたいと思います。[MAGIC_ENV]DeploymentMode = B の時は、呼ばないようにしたいと思います。
-
余談ですが、iPadモバイルRIAで、数値 4桁 オートスキップ=Yes の項目に
例えば1234と入力すると、入力点滅が次項目に移りました。便利だと思いました。身長
体重
BMI
など数字だけを入れる項目が連続している場合など便利でしょうね。iPadの数字入力キーボードが
横に
1234567890 と入力される部分が789
456
123
0
のように表示されても便利なのかなと思いました。 -
ISHIJIMAさん、いつもお世話になっております。
> クラサバ・RIA・モバイル・WEBクライアントをすべて1つのソースにできることは確認しています。
情報ありがとうございました。助かります。
-
以前作成したモバイルRIAは、ecfサイズは350KBぐらいでした。
クラサバと共用すると3MB以上になりそうですが、
モバイルRIAなどは処理に必要な部分だけをxmlなどで持ってくるのかわかりませんが
ecfの大きさはあまり気にする必要はないもんでしょうか?以前のシステムは
・クラサバはuniPaaS V1 Plus
・モバイルRIAは、xpa2.5両者のデータリポジトリは、同じレイアウトを維持するといった感じにしておりました。
-
実行モードの設定以外に配慮すべき点は、ライセンスの配置ですね。
-
tandaさん ありがとうございます。
iniファイルは分けるつもりです。
LisenceA.DAT にクラサバ 20ユーザー。
LisenceB.DAT にサーバ実行版 Magic xpa RIA Server for Mobile を入れるとか。iniファイルは分けて
Lisence.DATは1本でもいいのでしょうね。 -
あともう一つは、ecfやiniの配置をいろいろと分けた場合に、排他制御がうまく行くかの確認ですね。
-
tandaさんありがとうございます。
モバイルRIA側では
・未入荷発注分からの入荷生成
などを予定しています。mglock.datによる排他ではなく
SQL Server上の排他ファイルを
モバイルもRIAも共用すると思います。モバイルRIA側も、バッチ処理で物理トランで
まず排他するとか、そんな作りで試行錯誤(苦労)する事になると思います。 -
そうですね、mglockを使っていなければ行けそうですね。
-
> 画面系は遅延トランザクションを使用すれば何も問題ないかと思っていますが・・・
クラサバ側で、未入荷のある発注伝票を変更、保存する。
同じタイミングでモバイルでその発注伝票を更新する。
遅延トラン側でエラーが起きて、トランザクション更新が無しに終わる!とか
何かそのような実験もやってみたいです。ISHIJIMAさん ありがとうございます。
-
クラサバも全部遅延にすれば問題なさそうですね。ここにきてやっと、遅延のメリットが浸透してきたようですね。
-
遅延のデメリットとして、例えば同時に同じ伝票のメンテナンスを始めてしまった事が
把握出来ないという点がありますかね。でも実際にそういったシーンが生じるかと言えば、そんな事はないのかもしれません。
(先日は、物理トランザクションで、デッドロックも生じました。)
tandaさん、レスありがとうございました。
-
どうしてもという場合はフラッグを立てればいいですね。昔ながらのやり方ですが。
-
他言語のWebのシステムでは、メンテするデータをまず表示、
修正を選ぶと、排他情報を作成してから、メンテをさせる!・・・・
といった分もあるのでしょうね。
-
破棄されたほうのデータが、苦労して30分も掛けて入力したものだったりすると、泣くに泣けなくなってしまいますね。
-
営業担当が見積書などを30分、1時間かけて変更するなんて事はありますね。
その間、事務員がちょろっと見ただけで、保存したなんて事は起きるかもしれませんね。
自前でロックを組み込んだ方がいい場面とその必要はない場面と使い分けてもいいのでしょうね。
-
あるいは明示的に画面にロックボタンを付けるとかもいいかもしれませんね。
-
> あるいは明示的に画面にロックボタンを付けるとかもいいかもしれませんね。
いいですね。Tandaさんありがとうございます。
照会モードから修正モードへ切り替わる、みたいな感じで
かつ排他情報を作成するという事でしょうね。
-
更新カラムがかち合わないケースでしたら、更新レコードの識別特性でもいいですね。
-
そういえば、たまにしか使いませんがLock関数がありましたね。
でも誰がLockしているかといった情報はDBに書く事になりそうです。
-
> かつ排他情報を作成するという事でしょうね。
そうです。時間の掛かりそうな重要な編集をする場合とかですね。
-
クラサバとモバイルRIAのソースを1本化していいですか?と質問させて頂いた件。
報告です。
先日2019サーバーを客先に設置してきました。
ecf1本を
クライアント実行版、RIA Server Mobile の両方で共用する設定にしてきました。サーバー起動してしばらくするとRIAが稼働するのかMglock.Datは基本的に常に存在する感じなので、クライアント実行版を誰か起動しているか判別し辛くなりました。
それは別に仕方ないかと気にしておりません。
まだ本番は先ですが、dbMAGIC V8からxpa4にマイグレーションして、SQL Server化、RM互換除去、追加改造としたので心配な面も多々ありますが。
-
nkmtさん
「データベース特性」の「オプション」→「Magicロック」の設定はどうなっていますか?Magicロックを使用しないのであれば、ここを「N=なし」にすればいいと思います。
-
tandaさん、ISHIJIMAさん いつもお世話になっております。
ISHIJIMAさんの言われる
「共有フォルダーのアクセスを確認すればよいのでは」は
誰が使っているか?がわかるという意味なのでしょうね。
参考にさせて頂きます。tandaさんの言われるMagicロック N=なし なるほどですね。
RIA Server Mobile ですが、今回はモバイル側で
入荷伝票採番ファイルを読み書きしますね。同時に採番を取りに行って
両者が同じ入荷伝票番号を採取してこないか・・・
もしかするとtandaさんの言われる
数値項目の
値更新か
差分更新かの使い分けも活用するといいのでしょうかね。 -
> 値更新か
> 差分更新かの使い分けも活用するといいのでしょうかね。残念ながら、自動採番における差分更新は意味がないです。端末Aと端末Bが同時に「X+1」の値を取りに行くと、二人とも同じ値になってしまうのは、これまでと同じです。かりに、どちらか一方が、値を取得した直後にトランザクションをコミットして1を増やしたとしても、それはこれまでと同じやり方になりますね。
-
ありがとうございます。
伝票採番は、採番部分だけを一つのトランザクションにするようにしています。
短時間の読み書きにしないと、採番ファイルのレコードロック解除待ち時間が多くなるので。
20台未満のお客様が多いですが、これが50台、100台になると私の今までの作りが通用するのか自信がありません。
-
差分更新はデータを書き込むときの、SQLコマンドを使った機能ですので、データを読み込むときにはあまり意味がありません。
-
tandaさん、ありがとうございます。
商品月間データみたいな物を作っています。
在庫場所+商品コード+年月、前月在庫数、当月出荷数・・・こういった分の数量の項目は
項目の特性で、差分更新にしておくといい事があるのでしょうね。
※私は実験もしておらず、こんな知識ですみません。 -
「差分更新」は、データをロックせずに複数端末から同時更新ができるという機能ですので、従来の概念とは異なりますが、ロックの手間が省けてとても便利です。
この機能だけ取っても、PervasiveからSQL系列のDBに移行する価値があると思います。
-
tandaさん、私はよくわかっていませんでした。感謝です。
サインインしてコメントを残してください。
コメント
30件のコメント