转自:http://tb.blog.csdn.net/TrackBack.aspx?PostId=1236159
ConnectionFac I J2CA0122I: 无法定位资源引用 jdbc/DSName,因此使用下列缺省值:[Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
res-resolution-control: 999 (undefined)
[Other attributes]
isCMP1_x: false (not CMP1.x)
isJMS: false (not JMS)
公司一直用WSAD开发,服务器总是System.out这个问题,虽然不是错误,但是很烦人,想去掉了,问了不少人,也google了很多次,没有找到解决办法。今天百度了一下,终于解决了(看来还是多个搜索引擎并存的好,至少多了一个选择)。
准备写一个,但是原来写得很好,就转一下吧,希望这个帖子能尽快收录到google,帮助不明白此问题的网友找到答案。
==>>>以下为转帖内容:
那天他们把43的数据库连接改成了缓冲池,在WAS上调程序的时候发现LOG里老有如下信息:
ConnectionFac I J2CA0122I: 无法定位资源引用 jdbc/DSName,因此使用下列缺省值:[Resource-ref settings]
res-auth: 1 (APPLICATION)
res-isolation-level: 0 (TRANSACTION_NONE)
res-sharing-scope: true (SHAREABLE)
res-resolution-control: 999 (undefined)
[Other attributes]
isCMP1_x: false (not CMP1.x)
isJMS: false (not JMS)
是在每一次连接数据库时,为什么呢?数据库的连接没有问题,对数据库的操作也没有受到一点儿影响……?
后来到网上SEARCH了一下,发现好多人都遇到了这个问题,当然也找到了解决的办法。但,不行!
因为事儿多所以就耽误了下来,正好今天IBM软件部的胡鹏飞来给我们讲WAS6(好家伙,5天的课程,今天一天全都突击出来)。
下午讲完课后我问他这个问题如何解决,他告诉我如何如何解决。他的方法与我的一样,可我的为什么不行呢?
解决方法如下:
J2EE 1.3的规范里面是推荐通过引用来访问各种资源,而不是直接使用资源的名字。对于数据源而言,虽然可以通过InitialContext的lookup ("jdbc/DSName")来使用,但这不是推荐的做法,而且在SystemOut.log日志中出现上述信息。如果为应用程序模块定义相应的数据源 引用,然后在代码中用InitialContext的lookup("java:comp/env/DSRefName")就不会出现上述信息。
主要是要把web.xml中的resource-ref标记设为
<resource-ref id="ResourceRef_#">
<res-ref-name>jdbc/DSName</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>CONTAINER</res-auth>
<res-sharing-scope>Shareable</res-sharing-scope>
</resource-ref>
在JAVA使用缓冲池连接数据库时这样写:
...........
Context ctx = new InitialContext();
javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("java:comp/env/jdbc/DSName");
connection = ds.getConnection();
............
我 在WAS的控制管理器中说什么也没有找到设置resource-ref的地方,后来我想是不是应该重新部署一下应用呢?我嫌麻烦就没有做,胡鹏飞告诉我要 设置resource-ref只能重新部署应用。如果手工改文件比较麻烦,因为在ibm-web-bnd.xmi和ibm-web-ext.xmi都要做 绑定。他建议我先在WSAD中设置完再把这三个文件复制到WAS里。并且在应用服务器的config目录里也要有相应的修改,因为WAS读的是 config目录下的配置,不是企业应用。
sigh,恍然大悟啊,明白了,MD因为WAS还牵扯到集群方面,所以它不能从企业应用读配置文件。我 还是懒,所以我要手工改。嘿嘿!web.xml早就改好了:D,我把ibm-web-bnd.xmi和ibm-web-ext.xmi打开,将与 resource-ref所对应该的地方改好,当然config目录也是同样。重起了服务器后,再试。如然好了!:p
ibm-web-bnd.xmi和ibm-web-ext.xmi里绑定代码分别是:
[ibm-web-bnd.xmi]
.......
<resRefBindings xmi:id="ResourceRefBinding_#" jndiName="jdbc/DSName">
<bindingResourceRef href="WEB-INF/web.xml#ResourceRef_#"/>
</resRefBindings>
.......
[ibm-web-ext.xmi]
.......
<resourceRefExtensions xmi:id="ResourceRefExtension_#" connectionManagementPolicy="Default">
<resourceRef href="WEB-INF/web.xml#ResourceRef_#"/>
</resourceRefExtensions>
.......
note:代码基本上是放在<webApp href="WEB-INF/web.xml#WebApp_ID"/>标记的下面。
有几项注意的就是,
一、如果企业应用已经部署好了要对resource-ref,换句话说要改web.xml的设置,最好在外面改好比如WSAD里,再重新部署进WAS里。
二、如要手工改的话别忘了ibm-web-bnd.xmi和ibm-web-ext.xmi这两个问题要做关联的设置,还有应用服务的config目录。
三、为什么我在JAVA连数据库时没有在getConnection时加入用户名和密码呢,嘿嘿,因为在WAS的JAAS下的J2C设好了用户,并在设置JDBC缓冲池时在"组件受管认证别名"和"容器受管的认证别名"已经选中了我设置的数据库用户。
分享到:
相关推荐
- **name**: 数据源名称,在其他地方引用此数据源时使用的标识。 - **auth**: 指定数据源认证模式,这里设置为“Container”,表示由容器管理认证过程。 - **type**: 数据源的 Java 类型,这里是`javax.sql....
**juddi配置资源问题详解** 在开发基于SOA(Service-Oriented Architecture,面向服务架构)的应用时,选择开源工具可以显著降低成本。jUDDI(Java Universal Description, Discovery and Integration)是一个实现...
此示例展示了如何使用ICETOOL的不同操作符来执行一系列任务。每个操作符都有其特定的语法和功能。 #### COPY操作符详情 - **语法**:`ICETOOL OPER=COPY` - **功能**:复制数据集到另一个数据集。 - **示例**:将...
- **参数**: 如`TIME`、`NOTIFY`、`REGION`等,用于指定具体的值或行为。 - **格式**: 每条语句以`//`开始,某些语句如`JOB`可以跨多行定义。 **2-2 JOB语句** `JOB`语句用于定义作业的基本信息,例如作业名、作业...
这些实例将帮助您全面了解 IBM 大型机上 JCL 的广泛使用。 Job Control Language 的基础知识 Job Control Language (JCL) 是一种用来控制 IBM 大型机上作业执行的语言。JCL 语句可以定义作业的执行环境、资源分配...
2. **编译安装**:解压后执行`./configure --prefix=/usr/local`、`make`、`make install`等命令完成编译安装过程。需要注意的是,在编译过程中可能会遇到一些警告,但这些警告通常不会影响整个环境的正常使用。 3. ...
### IBM Z01 认证考试题库解析 #### 题目背景及概述 IBM Z01认证考试是针对IBM System z系统程序员的专业技能测试。该考试旨在评估考生对IBM大型机系统的深入理解与应用能力,特别是对于系统编程、管理以及故障...
- **问题**: If a userid is ZTEST1, then what is entered in the DataSet List Utility (generally option 3.4) for "Dsname Level" to list all datasets with the high level qualifier of the userid?...
本系统只能用作学习使用,不得用作生产环境。如因无视本声明,将本系统代码部署到生产环境,导致出现各种损失,本人不承担任何责任! 先上效果 安装方法 本系统升级到golang1.12,请开启如下支持 #开启go mod支持 ...
//SYSUT5 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT6 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //SYSUT7 DD UNIT=SYSDA,SPACE=(CYL,(1,1)) //*LKED EXEC PGM=HEWL,COND=(8,LT,COBOL),REGION=1024K //LKED EXEC PGM=HEWL...
### NC5系列单点登录方案解析 #### 一、方案概述 NC5系列单点登录方案旨在实现多个系统的无缝对接,使用户仅需一次登录即可访问所有授权的系统,如用友NC系统、OA系统等。该方案的核心在于通过一个中心化的认证系统...
### 方法一:使用连接字符串附加数据库 1. **未指定逻辑名**:如果你在附加数据库时没有指定逻辑名,数据库在SQL Server 2005中会以数据库文件的全路径(且为大写)显示。例如,`D:MyTest.mdf`和`D:MyTest.ldf`将...
根据提供的文件信息,我们可以归纳总结出关于如何使用C#来附加SQL Server数据库的关键知识点: ### 一、附加数据库的方法及注意事项 #### 方法一:通过指定或不指定逻辑名称附加数据库 1. **未指定逻辑名称时**:...
它允许用户通过一系列预定义的命令来指定作业的执行方式、所需的资源以及输入输出数据流。 1. **作业流(Job Stream)**: 用户为了完成某项任务而提交的一系列指令集合。一个作业流可能包含一个或多个作业。 2. **...
根据给定的文件信息,...以上解析涵盖了IBM 000-Z01认证考试题库的部分题目,通过深入理解每个问题及答案背后的逻辑,考生可以更好地准备考试,理解IBM System z System Programmer Mastery认证的关键概念和技术细节。
由于TongWeb本身并不包含JDBC数据库驱动,因此需要手动加载所需的数据库驱动。具体步骤如下: 1. 将对应的数据库驱动jar包(例如:oracle的驱动包)复制到TongWeb_home\lib目录下。 2. 重启TongWeb服务,使更改生效...
- 宏引用是指在宏程序中使用宏变量或宏参数的值,例如 `where year(date) = &m and month(date) = &n;` 6. **宏工具中的输入输出**: - SAS宏可以读取和写入文件,处理输入和输出,以实现更复杂的程序流程。 7. ...
- **JNDI**:Java命名和目录接口,用于查找和引用各种资源。 - **LDAP**:轻量级目录访问协议,一种基于TCP/IP的目录访问协议。 - **EJB**:企业级Java Bean,是Java EE平台的核心技术之一。 - **UML**:统一建模...