[pgpool-general-jp: 335] Re: JDBC から pgpool-II を経由してのラージオブジェクトの読み込み
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp
2007年 12月 26日 (水) 19:46:37 JST
浅羽です。
From: スクゥ 陶山 泰 <suyama @ skoo.co.jp>
Subject: [pgpool-general-jp: 333] Re: JDBC から pgpool-II を経由してのラージオブジェクトの読み込み
Date: Wed, 26 Dec 2007 18:34:35 +0900
> と思ったんですが、気を取り直して考えてみると、JDBC2 には、
> lom.createLO() というタージオブジェクトマネージャのメソッドがありまし
> た。これがlo_create()に対応しているんじゃないかと思います。(違うかな)
>
> lom = ((org.postgresql.PGConnection)db).getLargeObjectAPI();
> long oid = lom.createLO( LargeObjectManager.READ | LargeObjectManager.WRITE );
> /* ここまではOK */
>
> LargeObject obj = lom.open( oid, LargeObjectManager.WRITE );
> /* ここでエラー */
> /* An I/O error occured while sending to the backend. :/
>
> やっぱりダメですかね。
createLO() は
public long createLO(int mode) throws SQLException
{
if (conn.getAutoCommit())
throw new PSQLException(GT.tr("Large Objects may not be used in auto-commit mode."),
PSQLState.NO_ACTIVE_SQL_TRANSACTION);
FastpathArg args[] = new FastpathArg[1];
args[0] = new FastpathArg(mode);
return fp.getOID("lo_creat", args); <-- ココ
}
と、lo_creat() を呼び出しています。別の OID がそれぞれの PostgreSQL で
割り当てた後に lom.open() で開こうとしたところ、片方でしか開けなくてエ
ラーになっていると思います。
--
Yoshiyuki Asaba
y-asaba @ sraoss.co.jp
pgpool-general-jp メーリングリストの案内