Oracle PreparedStatement.executeUpdate () обрабатывает исчерпание пула соединений, выбрасывая экземпляр SQLException? - PullRequest
2 голосов
/ 18 июля 2011

Будет ли Oracle PreparedStatement.executeUpdate() API генерировать исключение типа SQLException, если пул соединений исчерпан?

Мои коды приложений (KMDatabaseDAO.insert()) вызывают Oracle PreparedStatement.executeUpdate() API, однакоКажется, что метод только выдает SQLException, поскольку существующие производственные коды довольно сильно испортили уровень ведения журнала, я не могу восстановить распечатку реальных журналов.

Ниже приведен дамп потока, взятый.

"ExecuteThread: '79' for queue: 'weblogic.kernel.Default'" daemon prio=1 tid=0x1b459f28 nid=0x5c62 runnable [1842b000..1842c228]
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at oracle.net.ns.Packet.receive(Unknown Source)
    at oracle.net.ns.DataPacket.receive(Unknown Source)
    at oracle.net.ns.NetInputStream.getNextPacket(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.net.ns.NetInputStream.read(Unknown Source)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:979)
    at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:951)
    at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:435)
    at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:182)
    at oracle.jdbc.driver.T4CPreparedStatement.execute_for_rows(T4CPreparedStatement.java:630)
    at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1081)
    at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:2905)
    at oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:2977)
    - locked <0x3339ad48> (a oracle.jdbc.driver.T4CPreparedStatement)
    - locked <0x2f8327d0> (a oracle.jdbc.driver.T4CConnection)
    at weblogic.jdbc.wrapper.PreparedStatement.executeUpdate(PreparedStatement.java:147)
    at com.sia.sd.db.dao.KMDatabaseDAO.insert(KMDatabaseDAO.java:125)

API Oracle PreparedStatement

1 Ответ

3 голосов
/ 18 июля 2011

Тот факт, что у вас есть PreparedStatement, означает, что вы уже извлекли соединение из пула, поэтому нет, пул не исчерпан, и выполнение PreparedStatement не может его исчерпать, потому что при этом не извлекается другое соединение из бассейна.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...