[Seasar-user:15118] 【S2JDBC】データのinsert後にselectできないことがある

OKADA Ikue [E-MAIL ADDRESS DELETED]
2008年 7月 23日 (水) 11:55:02 JST


岡田と申します。

アプリケーションサーバに2個のSeasar2/SAStrutsアプリケーションを配備し、

  1) Webアプリケーション1でS2JDBCを使ってデータをinsert
    ↓
  2) Webアプリケーション2をHTTPリクエスト呼び出し
  ↓
  3) Webアプリケーション2で、先ほどinsertしたデータを
     S2JDBCを使ってselect

という手順で処理を行っています。
このとき、たまに、1)でinsertしたデータが取得できないという現象が
発生しております。(再現性低)
現象の発生後、データベースを確認してみても、指定の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 メーリングリストの案内