SmartClient_SC_SNAPSHOT-2011-07-05 Power
I have this DMI class which I use to download a report and to update a list of records (if everything goes well):
The report contains the data of the records filtered by the criteria, and I must set the sysdate for those records.
It's my first attempt at managing a transaction server side.
It seems to have got the correct behaviour, but I get this warning:
server logs:
I have:
sql.dbInviti.autoJoinTransactions: true
setting in server.properties.
what am I doing wrong?
I have this DMI class which I use to download a report and to update a list of records (if everything goes well):
Code:
public class StampaEtichetteDMI { @SuppressWarnings("unchecked") public static DSResponse printLabel(DSRequest dsRequest, RPCManager rpcManager, HttpServletResponse httpServletResponse, HttpServletRequest httpServletRequest) throws Exception { SQLTransaction.startTransaction(rpcManager, "dbInviti"); try { DSRequest dsRequestInvitiFetch = new DSRequest("INVITI", "fetch"); dsRequestInvitiFetch.setAdvancedCriteria(dsRequest.getAdvancedCriteria()); dsRequestInvitiFetch.setRPCManager(rpcManager); DSResponse dsResponseInvitiFetch = dsRequestInvitiFetch.execute(); List<Map<String, Object>> inviti = dsResponseInvitiFetch.getDataList(); updateDataStampaEtichette(rpcManager, inviti); Servlets.downloadAsAttachment(httpServletResponse, httpServletRequest.getServletContext().getResourceAsStream("./reports/report1.pdf"), "etichette.pdf"); httpServletResponse.getOutputStream().flush(); httpServletResponse.getOutputStream().close(); SQLTransaction.commitTransaction(rpcManager, "dbInviti"); } catch (Exception e) { SQLTransaction.rollbackTransaction(rpcManager, "dbInviti"); } finally { SQLTransaction.endTransaction(rpcManager, "dbInviti"); } DSResponse dsResponse = new DSResponse(); rpcManager.doCustomResponse(); return dsResponse; } @SuppressWarnings("unchecked") private static void updateDataStampaEtichette(RPCManager rpcManager, List<Map<String, Object>> inviti) throws Exception { Map<String, Date> values = DataTools.buildMap("DATA_STAMPA_ETICHETTA", new Date()); for (Map<String, Object> invito : inviti) { DSRequest dsRequestInvitiUpdate = new DSRequest("INVITI", "update"); dsRequestInvitiUpdate.setFieldValue("ID_INVITO", invito.get("ID_INVITO")); dsRequestInvitiUpdate.setValues(values); dsRequestInvitiUpdate.setRPCManager(rpcManager); DSResponse dsResponseInvitiUpdate = dsRequestInvitiUpdate.execute(); dsResponseInvitiUpdate.getAffectedRows(); } } }
It's my first attempt at managing a transaction server side.
It seems to have got the correct behaviour, but I get this warning:
server logs:
Code:
=== 2011-07-13 15:56:04,000 [ec-4] INFO IDACall - Performing 1 operation(s) === 2011-07-13 15:56:04,015 [ec-4] DEBUG PoolableSQLConnectionFactory - Returning pooled Connection === 2011-07-13 15:56:04,015 [ec-4] DEBUG SQLTransaction - Started new dbInviti transaction "17387626" startLabel: 1 === 2011-07-13 15:56:04,031 [ec-4] DEBUG XML - Parsed XML from F:\iscSDK\tools\visualBuilder\workspace\Inviti\WebContent\shared\ds\INVITI.ds.xml: 0ms === 2011-07-13 15:56:04,031 [ec-4] DEBUG XML - Parsed XML from F:\iscSDK\tools\visualBuilder\workspace\Inviti\WebContent\isomorphic\system\schema\JS.ds.xml: 0ms === 2011-07-13 15:56:04,046 [ec-4] DEBUG XML - Parsed XML from F:\iscSDK\tools\visualBuilder\workspace\Inviti\WebContent\isomorphic\system\schema\Validator.ds.xml: 0ms === 2011-07-13 15:56:04,078 [ec-4] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application === 2011-07-13 15:56:04,078 [ec-4] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation === 2011-07-13 15:56:04,078 [ec-4] INFO SQLDataSource - [builtinApplication.null] Performing update operation with criteria: {ID_INVITO:1621} values: {DATA_AGGIORNAMENTO:new Date(1310565364062),UTENTE_AGGIORNAMENTO:"cbosticco",DATA_STAMPA_ETICHETTA:new Date(1310565364015)} === 2011-07-13 15:56:04,093 [ec-4] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'dbInviti': UPDATE INVITI SET DATA_AGGIORNAMENTO=TO_DATE('2011-07-13 15:56:04','YYYY-MM-DD HH24:MI:SS'), UTENTE_AGGIORNAMENTO='cbosticco', DATA_STAMPA_ETICHETTA=TO_DATE('2011-07-13 15:56:04','YYYY-MM-DD HH24:MI:SS') WHERE (INVITI.ID_INVITO='1621') === 2011-07-13 15:56:04,281 [ec-4] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows === 2011-07-13 15:56:04,281 [ec-4] INFO SQLDataSource - [builtinApplication.null] primaryKeys: {ID_INVITO=1621} === 2011-07-13 15:56:04,281 [ec-4] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'dbInviti': SELECT INVITI.ID_CATEGORIA_ASSEGNATA_FK, INVITI.NUMERO_ACCOMPAGNATORI, INVITI.PARCHEGGIO_BOOL, INVITI.SOCIETA, INVITI.DIREZIONE, INVITI.TITOLO, INVITI.NOTE_PARCHEGGIO, INVITI.NAZIONE, INVITI.DATA_AGGIORNAMENTO, INVITI.ID_TRASFERIMENTO, INVITI.ID_INVITO, INVITI.LUOGO_ENTE_RILASCIO_DOCUMENTO, INVITI.CAP, INVITI.PROVINCIA, INVITI.CARICA, INVITI.MAILED_TO, INVITI.PARCHEGGIO, INVITI.LOCALITA, INVITI.ID_INTESTATARIO_BUSTA, INVITI.ID_CATEGORIA_DESIDERATA_FK, INVITI.UTENTE, INVITI.NUMERO_DOCUMENTO, INVITI.ACCOMMODATION_BOOL, INVITI.EMAIL_UFFICIO, INVITI.INDIRIZZO_DI_INVIO, INVITI.MAILED_SUBJECT, INVITI.DATA_STAMPA_ETICHETTA, TITOLO || ' ' || NOME || ' ' || COGNOME AS nominativo, INVITI.NOTE_ACCOMMODATION, INVITI.NOME, INVITI.UTENTE_AGGIORNAMENTO, INVITI.LUOGO_PROVINCIA_DI_NASCITA, INVITI.TELEFONI_UFFICIO, INVITI.NOTE_TRASFERIMENTO, INVITI.NOTE_RITIRO, INVITI.ESCLUSO, INVITI.DATA_DI_NASCITA, INVITI.ACCOMPAGNATORE_DI, INVITI.ID_GRUPPO_STAMPA, INVITI.DATA_SPEDIZIONE_EMAIL, INVITI.AREA_RIFERIMENTO_JUVENTUS, INVITI.ACCOMMODATION, INVITI.TIPO_DOCUMENTO, INVITI.ID_EVENTO_FK, INVITI.ID_MACRO_GRUPPO_FK, INVITI.MAILED_CC, INVITI.COGNOME, INVITI.TRASFERIMENTO, INVITI.QUALIFICA, INVITI.TELEFONI_ABITAZIONE, INVITI.MODALITA_RITIRO, INVITI.QUANTITA_PARCHEGGIO, INVITI.DATA_RECALL, INVITI.EMAIL_ABITAZIONE FROM INVITI WHERE (INVITI.ID_INVITO='1621') === 2011-07-13 15:56:04,296 [ec-4] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items === 2011-07-13 15:56:04,296 [ec-4] DEBUG AppBase - [builtinApplication.null] No userTypes defined, allowing anyone access to all operations for this application === 2011-07-13 15:56:04,296 [ec-4] DEBUG AppBase - [builtinApplication.null] No public zero-argument method named '_null' found, performing generic datasource operation === 2011-07-13 15:56:04,296 [ec-4] INFO SQLDataSource - [builtinApplication.null] Performing update operation with criteria: {ID_INVITO:1622} values: {DATA_AGGIORNAMENTO:new Date(1310565364296),UTENTE_AGGIORNAMENTO:"cbosticco",DATA_STAMPA_ETICHETTA:new Date(1310565364015)} === 2011-07-13 15:56:04,296 [ec-4] INFO SQLDriver - [builtinApplication.null] Executing SQL update on 'dbInviti': UPDATE INVITI SET DATA_AGGIORNAMENTO=TO_DATE('2011-07-13 15:56:04','YYYY-MM-DD HH24:MI:SS'), UTENTE_AGGIORNAMENTO='cbosticco', DATA_STAMPA_ETICHETTA=TO_DATE('2011-07-13 15:56:04','YYYY-MM-DD HH24:MI:SS') WHERE (INVITI.ID_INVITO='1622') === 2011-07-13 15:56:04,312 [ec-4] DEBUG SQLDataSource - [builtinApplication.null] update operation affected 1 rows === 2011-07-13 15:56:04,312 [ec-4] INFO SQLDataSource - [builtinApplication.null] primaryKeys: {ID_INVITO=1622} === 2011-07-13 15:56:04,312 [ec-4] INFO SQLDriver - [builtinApplication.null] Executing SQL query on 'dbInviti': SELECT INVITI.ID_CATEGORIA_ASSEGNATA_FK, INVITI.NUMERO_ACCOMPAGNATORI, INVITI.PARCHEGGIO_BOOL, INVITI.SOCIETA, INVITI.DIREZIONE, INVITI.TITOLO, INVITI.NOTE_PARCHEGGIO, INVITI.NAZIONE, INVITI.DATA_AGGIORNAMENTO, INVITI.ID_TRASFERIMENTO, INVITI.ID_INVITO, INVITI.LUOGO_ENTE_RILASCIO_DOCUMENTO, INVITI.CAP, INVITI.PROVINCIA, INVITI.CARICA, INVITI.MAILED_TO, INVITI.PARCHEGGIO, INVITI.LOCALITA, INVITI.ID_INTESTATARIO_BUSTA, INVITI.ID_CATEGORIA_DESIDERATA_FK, INVITI.UTENTE, INVITI.NUMERO_DOCUMENTO, INVITI.ACCOMMODATION_BOOL, INVITI.EMAIL_UFFICIO, INVITI.INDIRIZZO_DI_INVIO, INVITI.MAILED_SUBJECT, INVITI.DATA_STAMPA_ETICHETTA, TITOLO || ' ' || NOME || ' ' || COGNOME AS nominativo, INVITI.NOTE_ACCOMMODATION, INVITI.NOME, INVITI.UTENTE_AGGIORNAMENTO, INVITI.LUOGO_PROVINCIA_DI_NASCITA, INVITI.TELEFONI_UFFICIO, INVITI.NOTE_TRASFERIMENTO, INVITI.NOTE_RITIRO, INVITI.ESCLUSO, INVITI.DATA_DI_NASCITA, INVITI.ACCOMPAGNATORE_DI, INVITI.ID_GRUPPO_STAMPA, INVITI.DATA_SPEDIZIONE_EMAIL, INVITI.AREA_RIFERIMENTO_JUVENTUS, INVITI.ACCOMMODATION, INVITI.TIPO_DOCUMENTO, INVITI.ID_EVENTO_FK, INVITI.ID_MACRO_GRUPPO_FK, INVITI.MAILED_CC, INVITI.COGNOME, INVITI.TRASFERIMENTO, INVITI.QUALIFICA, INVITI.TELEFONI_ABITAZIONE, INVITI.MODALITA_RITIRO, INVITI.QUANTITA_PARCHEGGIO, INVITI.DATA_RECALL, INVITI.EMAIL_ABITAZIONE FROM INVITI WHERE (INVITI.ID_INVITO='1622') === 2011-07-13 15:56:04,343 [ec-4] INFO DSResponse - [builtinApplication.null] DSResponse: List with 1 items === 2011-07-13 15:56:04,343 [ec-4] DEBUG SQLTransaction - Committing dbInviti transaction "17387626" === 2011-07-13 15:56:04,375 [ec-4] DEBUG SQLTransaction - Ending dbInviti transaction "17387626" 2011-07-13 15:56:13,765 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <Beginning ticket cleanup.> 2011-07-13 15:56:13,765 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <0 tickets found to be removed.> 2011-07-13 15:56:13,765 INFO [org.jasig.cas.ticket.registry.support.DefaultTicketRegistryCleaner] - <Finished ticket cleanup.> === 2011-07-13 15:56:14,234 [izer] WARN SQLDataSource - Exception while ending transaction connection java.lang.Exception: Could not find a DSRequest for a SQLDataSource in getConnection at com.isomorphic.sql.SQLTransaction.getConnection(SQLTransaction.java:148) at com.isomorphic.sql.SQLDataSource.freeResources(SQLDataSource.java:2278) at com.isomorphic.datasource.DSRequest.freeResources(DSRequest.java:3027) at com.isomorphic.datasource.DSRequest.finalize(DSRequest.java:1988) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160)
sql.dbInviti.autoJoinTransactions: true
setting in server.properties.
what am I doing wrong?
Comment