[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 メーリングリストの案内