点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
当我想在消息映射中连接数据源别名时出现此错误:
方法ConnectionFactoryImpl.getConnection()中的ResourceException:com.sap.engine.services.connector.exceptions.BaseResourceException:无法打开具有LocalTransaction支持的资源(托管连接)或在同一事务中添加第二个 组件" ejbContexts/ 应用程序" sap.com/com.sap.xi.repository">
这是代码:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY," com.sap.engine.services.jndi.InitialContextFactoryImpl");
env.put(Context.PROVIDER_URL," localhost:50004");
InitialContext ctx = new InitialContext(env);
DataSource ds =(DataSource)ctx.lookup(" jdbc/UDF_Oracle_XIFunction");
Connection con = ds.getConnection();
可以找到数据源,但连接会导致异常。
我已经使用JDBC版本1.0和2.0的数据源别名进行了尝试。
在JDBC 2.0版中,我尝试使用ConnectionPoolDataSource和XADataSource。
我也尝试使用默认连接隔离= TRANSACTION_NONE。
与此同时,我认为这不是编码或数据源问题,而是容器中的配置问题。
有人有主意吗?
感谢,
苏珊
您好Susanne-
此异常意味着您需要使用XA数据源。 该应用程序尝试在全局(JTA)事务的上下文中打开来自LocalTransaction支持的两个不同数据源的两个连接。
首先,设置您的XA数据源并对其进行测试,以确保它可以正常工作 。 即,从Visual Admin/JDBC连接器服务的"数据库初始化"选项卡中,您是否能够成功执行测试查询? 确保在"其他"选项卡中指定适当的属性,例如URL,用户和密码的"键/值"对。 默认连接隔离可以保留为DEFAULT。 SQL引擎应为供应商SQL。 一旦成功,至少您知道这不是连接问题。 然后尝试进行测试映射,以再次进行数据库查找。 如果这时失败,则可能是编码问题。
关于
Jin
嗨苏珊,
OraclePoolDataSource工作正常。 该应用程序需要XADataSource。 我正在将其从JBoss移植到SAP Web AS。
所以我不知道他们为什么需要它。 我也是SAP Web AS的新手。 为了进一步发展,我将其更改为OraclePoolDataSource。
现在,应用程序已成功启动。
我试图通过网络启动来启动客户端。 客户端的servlet从数据源获取连接失败,但出现以下异常
原因:com.sap.engine.services.dbpool.exceptions.BaseSQLException:方法ConnectionFactoryImpl.getConnection()中发生ResourceException:com.sap.engine.services.connector.exceptions.BaseResourceException:不允许打开连接!
在com.sap.engine.services.dbpool.cci.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:59)
...还有37
原因:com.sap.engine.services.connector.exceptions.BaseResourceException:不允许打开连接!
at com.sap.engine.services.connector.resource.impl.RestrictedResourceSetImpl.getSharedEventHandler(RestrictedResourceSetImpl.java:64)
com.sap.engine.services.connector.jca.ConnectionManagerImpl.allocateConnection(ConnectionManagerImpl.java:172)
com.sap.engine.services.dbpool.cci.ConnectionFactoryImpl.getConnection(ConnectionFactoryImpl.java:51)
还有我之前注意到的其他错误
异常com.sap.engine.services.security.exceptions.BaseLoginException:一些登录模块出错。
com.sap.engine.services.security.login.ModulesProcessAction.run(ModulesProcessAction.java:102)
在java.security.AccessController.doPrivileged(本机方法)
com.sap.engine.services.security.login.FastLoginContext.login(FastLoginContext.java:123)
在com.sap.engine.services.servlets_jsp.server.runtime.context.SessionServletContext.doLogin(SessionServletContext.java:547)
com.sap.engine.services.servlets_jsp.server.runtime.context.SessionServletContext.checkUser(SessionServletContext.java:267)
com.sap.engine.services.servlets_jsp.server.runtime.context.ApplicationContext.checkMap(ApplicationContext.java:400)
com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.checkRequest(HttpHandlerImpl.java:64)
com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:655)
com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:221)
com.sap.engine.services.httpserver.server.Client.handle(Client.java:92)
com.sap.engine.services.httpserver.server.Processor.request(Processor.java:146)
com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:37)
com.sap.engine.core.cluster.impl6.session.UnorderedChannel $ MessageRunner.run(UnorderedChannel.java:71)
在com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
在java.security.AccessController.doPrivileged(本机方法)
在com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:94)
com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:140)
由以下原因引起:java.lang.OutOfMemoryError
我尝试使用configtool更改内存设置。
仍然出现OutOfMemeoryError。
感谢您在此方面的帮助。
我今天整天都试过了,
再次感谢您的快速回复。 这有助于我快速进步。
Kavitha
一周热门 更多>