[Seasar-user:15119] Re: 【S2JDBC】データのinsert後にselectできないことがある
Yasuo Higa
[E-MAIL ADDRESS DELETED]
2008年 7月 23日 (水) 14:50:23 JST
ひがです。
> 岡田と申します。
>
> アプリケーションサーバに2個のSeasar2/SAStrutsアプリケーションを配備し、
>
> 1) Webアプリケーション1でS2JDBCを使ってデータをinsert
> ↓
> 2) Webアプリケーション2をHTTPリクエスト呼び出し
> ↓
> 3) Webアプリケーション2で、先ほどinsertしたデータを
> S2JDBCを使ってselect
>
> という手順で処理を行っています。
> このとき、たまに、1)でinsertしたデータが取得できないという現象が
> 発生しております。(再現性低)
1のinsertされてからコミットされる間に、3が実行されると
起こりますね。
発生したときのログがあれば確認してみると良いかも。
JBossのトランザクションマネージャを使っているなら、
トランザクションのログも出力されている必要があります。
> 現象の発生後、データベースを確認してみても、指定のIDに対応する
> データそのものは正しく追加されており、SQLを発行すると
> 取得することができます。
> また、一度取得できなかったデータを、再度select処理のメソッドを
> 通して取得することも可能です。
>
> この現象の原因、または何か手がかりとなりそうなヒントなど
> ありましたら、いただけないでしょうか。
>
> --------------------------------------------------------
> OS :Windows2003Server/WindowsXP で再現確認済み
> JRE :1.6.0_03
> APサーバ :JBoss 4.0.3 SP1
> DB :PostgreSQL 8.3.1
> S2Container :2.4.24
> SAStruts :1.0.1
> --------------------------------------------------------
>
> [insert部分のコード]
> private JdbcManager jdbcManager;
> ...
> public ModelServerAccessor(JdbcManager manager) {
> this.jdbcManager = manager;
> }
> ...
> this.jdbcManager.insert(entity).excludesNull().execute();
>
> [select部分のコード]
> private JdbcManager jdbcManager;
> ...
> public ModelServerAccessor(JdbcManager manager) {
> this.jdbcManager = manager;
> }
> ...
> OriginalFile entity = this.jdbcManager
> .from(TemporaryFolder.class)
> .where("id = ?", id)
> .getSingleResult();
> ※このentityがnullとなる
>
> [Entity]
> @Entity
> @Table(name = "ORIGINAL_FILE_DATA")
> public final class OriginalFile {
>
> @Id
> @GeneratedValue(strategy = GenerationType.SEQUENCE,
> generator = "ORIGINAL_FILE_GEN")
> @SequenceGenerator(name = "ORIGINAL_FILE_GEN",
> sequenceName = "SEQ_ORIGINAL_FILE_DATA_ID")
> public int id;
>
> ...
>
> }
>
> よろしくお願いいたします。
>
> --
> Ikue OKADA <[E-MAIL ADDRESS DELETED]>
> _______________________________________________
> Seasar-user mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-user
>
Seasar-user メーリングリストの案内