マイグレーション前と後で動きが違う。
- このフォーラムに新しいトピックを立てることはできません
- このフォーラムではゲスト投稿が禁止されています
humi
投稿数: 204
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
いつも参考にしております。
今回、MAGIC Ver8.2からuniPaaS V1Plusに、マイグレーションしたプログラムがあります。プログラムの内容は、伝票入力プログラムで、見出と明細を1つのデータにしています。見出入力から削除をした時に、見出部分と明細部分のデータを削除するバッチプログラムを実行しています。その削除処理のバッチプログラム実行後に、uniPaaS V1Plusの方だと、次のメッセージが表示なります。
メッセージ
処理に失敗しました.他のユーザか処理によってレコードが変更されています.データソース: ファイル名
MAGIC Ver8.2の方は、上記のメッセージが表示なりません。uniPaaS V1Plusの方も、上記のメッセージが表示ならないようにしたいのですが、ご教授の程宜しくお願い致します。
今回、MAGIC Ver8.2からuniPaaS V1Plusに、マイグレーションしたプログラムがあります。プログラムの内容は、伝票入力プログラムで、見出と明細を1つのデータにしています。見出入力から削除をした時に、見出部分と明細部分のデータを削除するバッチプログラムを実行しています。その削除処理のバッチプログラム実行後に、uniPaaS V1Plusの方だと、次のメッセージが表示なります。
メッセージ
処理に失敗しました.他のユーザか処理によってレコードが変更されています.データソース: ファイル名
MAGIC Ver8.2の方は、上記のメッセージが表示なりません。uniPaaS V1Plusの方も、上記のメッセージが表示ならないようにしたいのですが、ご教授の程宜しくお願い致します。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
メッセージの内容から推測して
トランザクションかと思われます
トランザクションを見直おせば良いと思いますが
間違ってたらゴメンなさい
でわ〜でわ〜
メッセージの内容から推測して
トランザクションかと思われます
トランザクションを見直おせば良いと思いますが
間違ってたらゴメンなさい
でわ〜でわ〜
投票数:0
平均点:0.00
humi
投稿数: 204
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
pu_mahaloさんご返答頂き、誠に有難う御座います。
現状のトランザクションの設定は下記のようになっています。
見出入力(オンラインプログラム)
トランザクションモード:P=物理
トランザクション開始:L=レコードロック時
データ削除(バッチプログラム)
トランザクションモード:P=物理
トランザクション開始:P=レコード前の前
私の方でプログラムを下記のように修正したところ、メッセージがでなくなりました。
修正箇所
データ削除のバッチプログラムで、以前は見出・明細全てを削除していたのを、明細のみ削除するようにしました。
それで、ご教授頂きたいのが、トランザクションの設定をどのようにしたら良いのかということと、私が修正した方法でも良いのかということです。
ご教授の程、宜しくお願い致します。
現状のトランザクションの設定は下記のようになっています。
見出入力(オンラインプログラム)
トランザクションモード:P=物理
トランザクション開始:L=レコードロック時
データ削除(バッチプログラム)
トランザクションモード:P=物理
トランザクション開始:P=レコード前の前
私の方でプログラムを下記のように修正したところ、メッセージがでなくなりました。
修正箇所
データ削除のバッチプログラムで、以前は見出・明細全てを削除していたのを、明細のみ削除するようにしました。
それで、ご教授頂きたいのが、トランザクションの設定をどのようにしたら良いのかということと、私が修正した方法でも良いのかということです。
ご教授の程、宜しくお願い致します。
投票数:0
平均点:0.00
pu_mahalo
居住地: 大阪
投稿数: 775
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
こんにちは Puです
見出入力でトランザクションがロックがかかった状態で
バッチプログラム側で見出しも削除しようとした為
起こっていたと推測されます
プログラムの作りの詳細が分からないので なんとも言えませんが
Magic Ver8.2 でもトランザクションの掛け方が同じなら
同じエラーになるはずなんですが
見出入力でトランザクションがロックがかかった状態で
バッチプログラム側で見出しも削除しようとした為
起こっていたと推測されます
プログラムの作りの詳細が分からないので なんとも言えませんが
Magic Ver8.2 でもトランザクションの掛け方が同じなら
同じエラーになるはずなんですが
投票数:0
平均点:0.00
humi
投稿数: 204
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
Puさん、ご返答頂き有難う御座います。
Magic Ver8.2の方ではエラーにならないんですよね。また何か情報ありましたら、ご教授の程宜しくお願い致します。
Magic Ver8.2の方ではエラーにならないんですよね。また何か情報ありましたら、ご教授の程宜しくお願い致します。
投票数:0
平均点:0.00
HAYATO
居住地: 大阪市淀川区西中島5-9-2
投稿数: 90
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
こんにちは
マイグレーションによって、V8ではトランザクション無しのものが、トランザクション有に変更されてしまったのではないでしょうか?
アプリケーション辞書入力に、MAGIC.INIの動作環境の設定が「ロック前にトランザクション開始(ISAM)」をYesにSいているとトランザクションモードの自動変換が発生します。
HAYATO@アインシュタイン設計社
マイグレーションによって、V8ではトランザクション無しのものが、トランザクション有に変更されてしまったのではないでしょうか?
アプリケーション辞書入力に、MAGIC.INIの動作環境の設定が「ロック前にトランザクション開始(ISAM)」をYesにSいているとトランザクションモードの自動変換が発生します。
HAYATO@アインシュタイン設計社
投票数:0
平均点:0.00
humi
投稿数: 204
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
HAYATOさん、ご返答頂き有難う御座います。
MAGIC.INIの、ロック前にトランザクション開始(ISAM)を、Noに変更してから、Ver8からV9Plusへ辞書入出力を行い、V9Plusアプリケーション変換ユーティリティを使い、uniPaaSV1Plusに変換したところ、トランザクション開始のところが下記のように変わりました。
見出入力(オンラインプログラム)
L=レコードロック時->U=レコード更新前に変わった。
データ削除処理(バッチプログラム)
P=レコード前の前->N=なしに変わった。
しかし、プログラムを実行すると、同じメッセージが表示なりました。今回はプログラム修正で対応したいと思います。
また何か情報ありましたら、ご教授の程宜しくお願い致します。
MAGIC.INIの、ロック前にトランザクション開始(ISAM)を、Noに変更してから、Ver8からV9Plusへ辞書入出力を行い、V9Plusアプリケーション変換ユーティリティを使い、uniPaaSV1Plusに変換したところ、トランザクション開始のところが下記のように変わりました。
見出入力(オンラインプログラム)
L=レコードロック時->U=レコード更新前に変わった。
データ削除処理(バッチプログラム)
P=レコード前の前->N=なしに変わった。
しかし、プログラムを実行すると、同じメッセージが表示なりました。今回はプログラム修正で対応したいと思います。
また何か情報ありましたら、ご教授の程宜しくお願い致します。
投票数:0
平均点:0.00
HAYATO
居住地: 大阪市淀川区西中島5-9-2
投稿数: 90
![一人前 一人前](../../uploads/rank3dbf8ea81e642.gif)
こんにちは
V8の時にトランザクションを使っていないなら
マイグレーションの際にもISAMトランザクションは
Noにしてみてください。
それで同じ動きになるはずです。
HAYATO@アインシュタイン設計社
V8の時にトランザクションを使っていないなら
マイグレーションの際にもISAMトランザクションは
Noにしてみてください。
それで同じ動きになるはずです。
HAYATO@アインシュタイン設計社
投票数:0
平均点:0.00
humi
投稿数: 204
![長老 長老](../../uploads/rank3dbf8eb1a72e7.gif)
HAYATOさん、ご返答頂き誠に有難う御座います。
ISAMトランザクションは始めからNoになっていました。ロック前にトランザクション開始(ISAM)の方は、YesだったのをNoに変更してマイグレーションしたのですが、メッセージが表示なります。Ver8.2とuniPaaSV1Plusで、データベースが違うのですが、それは関係あるでしょうか。
Ver8.2の方は、Btrieve Ver 6.15
uniPaaSV1Plusの方は、Pervasive SQL V10
何か情報ありましたら、ご教授の程宜しくお願い致します。
ISAMトランザクションは始めからNoになっていました。ロック前にトランザクション開始(ISAM)の方は、YesだったのをNoに変更してマイグレーションしたのですが、メッセージが表示なります。Ver8.2とuniPaaSV1Plusで、データベースが違うのですが、それは関係あるでしょうか。
Ver8.2の方は、Btrieve Ver 6.15
uniPaaSV1Plusの方は、Pervasive SQL V10
何か情報ありましたら、ご教授の程宜しくお願い致します。
投票数:0
平均点:0.00