Я работал над несколькими приложениями JBoss, где у меня все работает на моем ноутбуке (Windows XP), включая базу данных Oracle (11g Enterprise Edition). На ноутбуке все работает нормально.
Теперь я настраиваю новую, более быструю машину (под управлением Windows 7 Professional), и приложения JBoss, отличные от XA, работают нормально, но приложения, требующие подключения XA, не могут подключиться к Oracle. Я почти уверен, что это проблема с моей новой установкой Oracle, потому что я могу указать приложениям внешний сервер Oracle, и они работают, но они не могут подключиться, когда указывают им мою локальную базу данных Oracle.
Я сделал много поисков в Google, и единственная информация, которую я могу найти, это то, что мне нужно запустить скрипт $ORACLE_HOME/rdbms/admin/xaview.sql
для создания некоторых представлений XA, и мне нужно предоставить пользователю следующие разрешения:
GRANT SELECT ON sys.dba_pending_transactions TO <user>;
GRANT SELECT ON sys.pending_trans$ TO <user>;
GRANT SELECT ON sys.dba_2pc_pending TO <user>;
GRANT EXECUTE ON sys.dbms_xa TO <user>;
Но после всего этого я все еще не могу подключить приложения. Это исключение, которое я получаю:
org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (java.sql.SQLException: Io exception: The Network Adapter could not establish the connection) at org.jboss.resource.adapter.jdbc.xa.XAManagedConnectionFactory.createManagedConnection(XAMangedConnectionFactory.java:144) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventLisener(InternalManagedConnectionPool.java:577) at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:262) at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:500) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:347) at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:330) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:402) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:849) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:90) at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46) at org.hibernate.cfg.SettingsFactory.buildSettings(SettingsFactory.java:84)
Я знаю, что на самом деле это не вопрос программирования, но я надеялся, что кто-то видел это раньше. Любая помощь приветствуется.