Tag: db2

有没有更好的方法从StoredProc检索多个CURSOR到Java?

我有一个从存储过程中检索DB2游标的解决方案,但我正在寻找更好的方法。 目前的解决方案如下所述: – 存储过程: – CREATE OR REPLACE PROCEDURE Proc(c1 OUT SYS_REFCURSOR, c2 OUT SYS_REFCURSOR, c3 OUT SYS_REFCURSOR, ….) is BEGIN open c1 FOR select feild1,feild2,…. from RSPNSE_TABLE1; open c2 FOR select feild1,feild2,…. from RSPNSE_TABLE2; open c3 FOR select feild1,feild2,…. from RSPNSE_TABLE3; open c4 FOR select feild1,feild2,…. from RSPNSE_TABLE4; open c5 FOR select feild1,feild2,…. from […]

Java中的DB2连接速度极慢

我正在尝试从我的Java应用程序连接到Linux服务器上的IBM DB2 9数据库。 我正在使用db2jcc.jar (DB2 Universal JDBC Driver)。 建立连接需要花费大量时间。 可能有什么不对? 我知道有很多因素可能导致这种情况,但我想了解根本原因。

在为select查询使用预准备语句时获取SQLexception

StringBuilder sqlQry = new StringBuilder(); sqlQry.append(“SELECT LIB, PATH”) .append(” FROM OBJ”) .append(” INNER JOIN SRC ON SRC.MBR = OBJ.LOBJ”) .append(” WHERE TYPE = ‘*PGM'”) .append(” AND SRC.PATH LIKE ‘”).append(“?”).append(“%'”); PreparedStatement ps = accssConn.prepareStatement(sqlQry.toString()); ps.setString(1, path); rs = ps.executeQuery(); 大家好,我得到以下exception [jcc][10145][10844][3.63.123] Invalid parameter 1: Parameter index is out of range. ERRORCODE=-4461, SQLSTATE=42815 列限制为255,路径为=“C:\ Documents and Settings […]

使用Java为DB2和Oracle插入BLOB

我目前正在validation在Oracle for DB2上开发的应用程序。 由于我们不想维护两个单独的源,因此我需要一些查询来将blob插入到字段中,这在oracle和db2中都有效。 我没有任何标识符来区分运行应用程序的DB。 我在oracle中使用了utl_raw.cast_to_raw ,在DB2中使用了CAST() as BLOB ,它们是互不兼容的。

如何检查用户的DB2 SYSADM或SYSCTRL授权

如何检查用户的DB2 SYSADM或SYSCTRL授权。 我需要通过DB2权限validation用户/密码来创建/删除数据库。 对此有什么具体的命令吗? 我需要使用一个命令validation用户/密码,该命令告诉用户是否有权创建和删除数据库(意味着尝试在触发数据库创建命令之前进行validation)。

为除计算机登录用户之外的特定用户运行创建/删除DB2数据库命令

db2 CREATE DATABASE XYZ db2 DROP DATABASE XYZ 这些db2命令不支持在db2cmd / db2clp上为除计算机登录用户之外的特定用户执行时指定用户名/密码。 因此导致例外 “SQL1092N请求的命令或操作失败,因为用户ID无权执行请求的命令或操作。” 当通过选择“以不同用户身份运行”运行相同的命令时,它可以正常工作。 但我需要从Java代码中使用相同的机制,但不知道如何。 是否可以将已安装的db2的clp作为不同的用户forms打开Java代码? 是否可以在create / drop命令中关联用户名/密码?

Weblogic:调用没有模式名称的DB2存储过程(属性currentSchema)

我有一个在Weblogic上运行的Java应用程序。 应用程序需要访问DB2数据库中的存储过程,因此JDBC数据源由其JNDI名称配置和访问。 数据源: ClassDriver: com.ibm.db2.jcc.DB2Driver Properties: user=MYUSER DatabaseName=MYDB 以下示例按预期工作。 Context env = null; DataSource pool = null; Hashtable ht = new Hashtable(); ht.put(Context.INITIAL_CONTEXT_FACTORY, “weblogic.jndi.WLInitialContextFactory”); ht.put(Context.PROVIDER_URL,”t3://myserver:7777″); env = new InitialContext(ht); pool = (DataSource) env.lookup(“jdbc/myjndiname”); conn = pool.getConnection(); // call stored procedure with schema name String procName = “MYSCHEMA.MYSTOREDPROCEDURE”; String sql = “CALL ” + procName + […]

如何连接hibernate和DB2

我正在运行一个使用struts和hibernate的应用程序。 我目前正在使用Derby数据库。 现在我必须转向DB2数据库。 请告诉我 我在hibernate配置文件中需要做什么配置? 我是否必须设置任何classpath变量? 我知道DB2有两个jar( db2jcc.jar和db2jcc_license_cu.jar )。 我还需要其他jar子吗? 提前致谢。

跨群集共享Java同步块,还是使用全局锁?

我有一些代码,我只想允许一个线程访问。 我知道如何使用synchronized块或方法完成此操作,但这是否适用于集群环境? 目标环境是WebSphere 6.0,在集群中有2个节点。 我觉得synchronized不起作用,因为每个节点上的每个应用程序实例都有自己的JVM,对吧? 我在这里尝试做的是在系统启动时对数据库记录执行一些更新。 它将查找比代码版本更旧的任何数据库记录,并执行特定任务以更新它们。 我只希望一个节点执行这些升级,因为我想确保每个工作项只升级一次,并且这些升级的性能不是一个大问题,因为它只发生在应用程序启动时,它只是真正做任何事情自上次启动以来代码更改的时间。 数据库是DB2v9,我通过JNDI直接访问它(没有ORM层)。 有人建议全球锁定可能是这里的方式,但我不知道如何做到这一点。 有没有人在这个舞台上有任何指针? 谢谢!

如何处理陈旧的连接?

Ours是一个J2EE应用程序,在大型机/ DB2后端的Websphere 6.1上使用Struts-EJB-Hibernate,最近已转移到生产环境。 当用户第一次登录应用程序或有时间歇性地发生此exception时, 我们会收到过时的连接exception 。 在第二次尝试用户能够登录到应用程序。 我得到的确切错误信息是 empcom.ibm.websphere.ce.cm.StaleConnectionException: Execution failed due to a distribution protocol error that caused deallocation of the conversation. The command requested could not be completed because of a permanent error condition detected at the target system. DB2ConnectionCorrelator: AC100B80.A260.090107181206 我在webshere设置中启用了PRETEST选项,并将间隔设为60秒,但我仍然遇到此问题。 请分享您的观点并帮助我 如果需要,我可以给你更多细节。