Tak hacik bol v tom, ze IBM WebSphere forcuje UnShared Connection, pokial
resource adapter nepodporuje ziadnu transakciu.
Po zmene v ra.xml: <transaction-support>LocalTransaction</transaction-support>
a doimplementovanych drobnostiach podla runtime exceptions to uz funguje ako ma.
Zaznam v trace.log:
[4/8/09 16:15:39:049 GMT+01:00] 00000023 3 UOW=
source=com.ibm.ejs.j2c.ConnectionFactoryBuilderImpl org=IBM prod=WebSphere
component=Application Server thread=[WebContainer : 3]
Non-transactional resource adapter configured. Forcing
res-sharing-scope to UNSHAREABLE.
________________________________________
Zdravicko,
mam problem rozbehat svoj resource adapter. Narazil som na to ze
ConnectionManager.allocateConnection vo WAS 6.1 funguje inak nez som si
predstavoval.
Po 10 volaniach connectoru mi aplikacny server zahlasi
com.ibm.websphere.ce.j2c.ConnectionWaitTimeoutException z dovodu vycerpania
connections.
Nechapem preco sa matchManagedConnection zavola len v prvom pripade a az po
vytvoreni noveho ManagedConnection. Zaroven mi pride divne, ze pomocou close na
Connection prevolavam ConnectionEventListener.connectionClosed pre vsetky
listenery, ale nikdy sa mi nezavola ManagedConnection.removeAppConnection.
PREDPOKLAD: Predpokladal som, ze klient resource adapteru poziada o connection
nasledovne (zjednodusene):
1. ConnectionFactory.getConnection(parametre):
1.1. ConnectionManager.allocateConnection( ManagedConnectionFactory,
parametre):
--- nasledujuce kroky vykona aplikacni server: ---
1.1.1. managedConnection = matchManagedConnection(parametre)
1.1.2. if (null == managedConnection) {
1.1.2.1 managedConnection = new
ManagedConnection(parametre)
1.1.2.2
managedConnection.addConnectionEventListener(...)
1.2. Connection c = ManagedConnection.getConnection
1.3. return c;
REALITA: Co mna desi je zapis v logu:
1. ConnectionFactory.getConnection(parametre)
1.1. ConnectionManager.allocateConnection( ManagedConnectionFactory,
parametre)
1.1.1. managedConnection = new ManagedConnection(parametre)
1.1.2. managedConnection = matchManagedConnection(parametre)
1.1.3. managedConnection.addConnectionEventListener(...)
...
1. ConnectionFactory.getConnection(parametre)
1.1. ConnectionManager.allocateConnection( ManagedConnectionFactory,
parametre)
1.1.1. new ManagedConnection(parametre)
1.1.2. managedConnection.addConnectionEventListener(...)
...
1. ConnectionFactory.getConnection(parametre)
1.1. ConnectionManager.allocateConnection( ManagedConnectionFactory,
parametre)
1.1.1. new ManagedConnection(parametre)
1.1.2. managedConnection.addConnectionEventListener(...)
...
Tento e-mail je urcen pouze pro jeho adresata/adresaty a muze obsahovat duverne
informace, jejichz ochrana muze byt vyzadovana pravnimi predpisy.
Jestlize jste zpravu obdrzel(a) omylem, neprodlene informujte jejiho
odesilatele a tuto zpravu, jeji prilohy a pripadne kopie ihned vymazte.
Jakakoli forma uziti, zverejneni, reprodukce, kopirovani, distribuce a sireni
teto zpravy je v takovem pripade zakazana.
Komercni banka, a.s., neodpovida za mozne skody zpusobene neuplnym prenosem,
moznou modifikaci ci zpozdenim teto zpravy behem prenosu od odesilatele k
adresatovi.
This e-mail transmission is intended solely for the ordinary user of the e-mail
address to which it was addressed. It may contain legally privileged and/or
confidential information.
If you have received this e-mail in error or are not an intended recipient
please inform the sender with-out delay and delete this e-mail, attachments and
possible copies immediately. The unauthorised use, disclosure, distribution
and/or copying of this e-mail or any information it contains is prohibited.
Komercni banka, a. s., does not accept liability for any damage caused by
incomplete transmission, possible modification or delay of this e-mail during
the transmission from the sender to the recipient.