【问题标题】:cannot create a functioning connection pool with glassfish无法使用 glassfish 创建正常运行的连接池
【发布时间】:2012-08-27 13:22:46
【问题描述】:

我正在尝试创建一个从 glassfish 到 Oracle 的连接池。 当我使用命令行时,在创建过程中似乎一切正常,但应用程序因以下异常而崩溃:

Caused by: java.sql.SQLException: Protocol violation at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:450) at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) at oracle.jdbc.driver.T4C7Ocommoncall.doOROLLBACK(T4C7Ocommoncall.java:68) at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:642) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3716) at com.sun.gjc.spi.base.ConnectionHolder.rollback(ConnectionHolder.java:630) at org.hibernate.transaction.JDBCTransaction.rollbackAndResetAutoCommit(JDBCTransaction.java:217) at org.hibernate.transaction.JDBCTransaction.rollback(JDBCTransaction.java:196)

EDIT:当应用程序尝试使用 JPA 进行回滚时,会引发此异常。 结束编辑

这是我用来创建 CP 的命令:
asadmin> create-jdbc-connection-pool --restype javax.sql.DataSource --datasourceclassname oracle.jdbc.pool.OracleDataSource --property "user=myUser:password=myPw:url=jdbc\\:oracle\\:thin\\:@dbHostName\\:1521\\:mySID" My_CP

我还尝试从管理 gui 创建 CP(这将更加用户友好),但即使我在 /opt/glassfish3_old/glassfish/domains/domain1/lib 中复制了 ojdbc6.jar,当我不得不这样做时选择驱动类名对应的选择列表为空!

编辑: 我正在使用: java版本“1.7.0_06” Java(TM) SE 运行时环境 (build 1.7.0_06-b24) Java HotSpot(TM) 服务器虚拟机(build 23.2-b09,混合模式)

和 glassfish 3.1.2.2 oracle 版本(但与 3.1.2 开源版本的行为相同)
END EDIT

可能我在某个地方犯了一个愚蠢的错误。

谁能给点建议?

【问题讨论】:

标签: java oracle glassfish connection-pooling


【解决方案1】:

代替:

url=jdbc\\:oracle\\:thin\\:@dbHostName\\:1521\\:mySID

尝试以下模式?

jdbc:oracle:thin:@dbHostName:1521:mySID

【讨论】:

  • 是一样的。创建工作,但是当我通过应用程序使用 cp 时,它崩溃了。我想知道为什么它不像我设置的那样使用瘦驱动程序。
猜你喜欢
  • 1970-01-01
  • 2010-12-27
  • 2012-12-18
  • 2013-07-13
  • 1970-01-01
  • 1970-01-01
  • 2017-08-17
  • 2012-05-11
  • 1970-01-01
相关资源
最近更新 更多