создать источник данных, каквнедренный дерби начинается с ошибкой J2C
@DataSourceDefinition
(
name="java:app/env/myDataSource",
className="org.apache.derby.jdbc.EmbeddedXADataSource40",
databaseName="myDB",
properties=
{
// Vendor properties for Derby Embedded JDBC driver:
"createDatabase=create",
"connectionAttributes=upgrade=true",
// Custom properties for WebSphere Application Server:
"connectionTimeout=60",
"dataStoreHelperClass=com.ibm.websphere.rsadapter.DerbyDataStoreHelper",
"validateNewConnection=true",
"validateNewConnectionRetryCount=5"
},
serverName=""
)
Тогда я положил его в код запуска.
@Startup
@Singleton
public class StartUp {
@Resource(lookup = "java:app/env/myDataSource")
private javax.sql.DataSource dataSource;
...
Когда сервер WebSphere запускается, я получил ошибку ниже и более
[12/12/16 15: 05: 28: 136] EST 0000003b J2CXAResource W J2CA0061W: Ошибка при создании XA Соединение и ресурс java.lang.Exception: Параметр xaResInfo не имеет обертки RA, и обертка RA не может быть решена с использованием ключа RA. в com.ibm.ejs.j2c.J2CXAResourceFactory $ 1.Run (J2CXAResourceFactory.java:264) на com.ibm.ws.security.util.AccessController.doPrivileged (AccessController.java:118) в com.ibm .ejs.j2c.J2CXAResourceFactory.getXAResource (J2CXAResourceFactory.java:199) на com.ibm.ws.Transaction.JTA.XARecoveryData.getXARminst (XARecoveryData.java:492) на com.ibm.ws.Transaction.JTA .XARecoveryData.recover (XARecoveryData.java:658) на com.ibm.tx.jta.impl.PartnerLogTable.recover (PartnerLogTable.java:432) на com.ibm.tx.jta.impl.RecoveryManager.resync (RecoveryManager.java:1543) в com.ibm.tx.jta.impl.RecoveryManager.performResync (RecoveryManager.java:2276) в com.ibm.ws.tx.jta.RecoveryManager.performResync (RecoveryManager.java:119) на ком. ibm.tx.jta.impl.RecoveryManager.run (RecoveryManager.java:2229) в java.lang.Thread.run (Thread.java:798)
Любые мысли? Я думаю, что встроенное дерби не нуждается в J2C.
это WebSphere традиционный или Liberty? Я опробовал эту точную настройку на Liberty, и она отлично работала. Вы хотите возможности XA? Если нет, вы можете просто перейти на источник данных, отличных от XA, например: 'className =" org.apache.derby.jdbc.EmbeddedConnectionPoolDataSource40 "' –
@aguibert Это традиционный. Он должен работать так, как раньше.Но внезапно, когда я запускаю сервер сегодня, он дает ошибку. Интересно, что происходит? Да, мне нужно ха. – rickcoup
Я не уверен, что происходит, но сервер пытается выполнить восстановление XA, которое не работает. Какую версию WAS вы используете? Я нашел точное сообщение об ошибке, которое вы видите, но похоже, что оно было исправлено в WAS 7.0 (около 2011 года) https://www.ibm.com/developerworks/community/forums/html/topic?id=77777777-0000-0000 -0000-000014284573 –