You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Shanmu <sh...@yahoo.com> on 2010/01/13 19:14:57 UTC

Informix XA data source configuration for IFX_LOCK_MODE_WAIT

Hello everyone,

We are using Geronimo 2.1.4 with informix XA driver version 3.0.0 JC3. 
The application we build has a process which runs in the geronimo containner
every 2 

minutes and updates lots of tables. in foreground we a web application where
users can 

access screen and update and retrieve from the same tables. 

Our architecture is like this

JSP/Struts 2 --> EJB 3.0 with CMT--> DAO using hibernate uses data source
configured in 

geronimo server--> informix DB

We have configured the data source using the informix provided drivers and
the informix 

Tran QL connectors. 

We are currently facing a problem where we are getting locking issues
frequently when the 

user and batch process collides.

The error is 
"Could not do a physical-order read to fetch next row.SQL Error: -107,
SQLState: IX000"

The solution provided was to increase the IFX_LOCK_MODE_WAIT to some
reasonable time so 

that the process waits for the predefined time before it throws the error.
Default value 

for this is configured as zero in IFXDatasource.
By default data source configured using the informix XA option does not have
any option to 

configure this parameter. Neither the hibernate has any configuration for
this, as it is 

using the data source created in application server.

On analyzing the source code we noticed that there is a component 

org.tranql.connector.informix.XAMCF part of tran QL adapter which creates
and configures 

the data source,

    public XAMCF()
    {
        super(new IfxXADataSource(), new NoExceptionsAreFatalSorter());
        password = "";
        ds = (IfxXADataSource)xaDataSource;
    }

This IFXData source doesn not have the option of lock mode wait setup, which
can be done 

using the method "setIfxIFX_LOCK_MODE_WAIT". 
My questions are:

1. Is there any option where in we can configure the IFX_LOCK_MODE_WAIT
parameter?
2. If not is there any patch with this enhancement done.

Thanks in advance
Best Regards
Shanmu
-- 
View this message in context: http://old.nabble.com/Informix-XA-data-source-configuration-for-IFX_LOCK_MODE_WAIT-tp27148795s134p27148795.html
Sent from the Apache Geronimo - Dev mailing list archive at Nabble.com.

Re: Informix XA data source configuration for IFX_LOCK_MODE_WAIT

Posted by David Jencks <da...@yahoo.com>.
Following the more careful examination in  TQL-19
  I applied the supplied patch which changed the case of the new  
property and added an ra.xml entry for it.

thanks
david jencks

On Jan 13, 2010, at 11:55 AM, David Jencks wrote:

> I added this to the tranql wrapper and pushed a new snapshot to the  
> codehaus snapshot repo.
>
> http://snapshots.repository.codehaus.org/org/tranql/tranql-connector-informix-xa/1.2-SNAPSHOT/
>
> Can you verify that this works, that the time unit is seconds, and  
> look around to see if there are other properties we should allow  
> setting on the XADatasource?
>
> many thanks
> david jencks
>
> On Jan 13, 2010, at 10:14 AM, Shanmu wrote:
>
>> Hello everyone, We are using Geronimo 2.1.4 with informix XA driver  
>> version 3.0.0 JC3. The application we build has a process which  
>> runs in the geronimo containner every 2 minutes and updates lots of  
>> tables. in foreground we a web application where users can access  
>> screen and update and retrieve from the same tables. Our  
>> architecture is like this JSP/Struts 2 --> EJB 3.0 with CMT--> DAO  
>> using hibernate uses data source configured in geronimo server-->  
>> informix DB We have configured the data source using the informix  
>> provided drivers and the informix Tran QL connectors. We are  
>> currently facing a problem where we are getting locking issues  
>> frequently when the user and batch process collides. The error is  
>> "Could not do a physical-order read to fetch next row.SQL Error:  
>> -107, SQLState: IX000" The solution provided was to increase the  
>> IFX_LOCK_MODE_WAIT to some reasonable time so that the process  
>> waits for the predefined time before it throws the error. Default  
>> value for this is configured as zero in IFXDatasource. By default  
>> data source configured using the informix XA option does not have  
>> any option to configure this parameter. Neither the hibernate has  
>> any configuration for this, as it is using the data source created  
>> in application server. On analyzing the source code we noticed that  
>> there is a component org.tranql.connector.informix.XAMCF part of  
>> tran QL adapter which creates and configures the data source,  
>> public XAMCF() { super(new IfxXADataSource(), new  
>> NoExceptionsAreFatalSorter()); password = ""; ds =  
>> (IfxXADataSource)xaDataSource; } This IFXData source doesn not have  
>> the option of lock mode wait setup, which can be done using the  
>> method "setIfxIFX_LOCK_MODE_WAIT". My questions are: 1. Is there  
>> any option where in we can configure the IFX_LOCK_MODE_WAIT  
>> parameter? 2. If not is there any patch with this enhancement done.  
>> Thanks in advance Best Regards Shanmu
>> View this message in context: Informix XA data source configuration  
>> for IFX_LOCK_MODE_WAIT
>> Sent from the Apache Geronimo - Dev mailing list archive at  
>> Nabble.com.
>


Re: Informix XA data source configuration for IFX_LOCK_MODE_WAIT

Posted by David Jencks <da...@yahoo.com>.
I added this to the tranql wrapper and pushed a new snapshot to the  
codehaus snapshot repo.

http://snapshots.repository.codehaus.org/org/tranql/tranql-connector-informix-xa/1.2-SNAPSHOT/

Can you verify that this works, that the time unit is seconds, and  
look around to see if there are other properties we should allow  
setting on the XADatasource?

many thanks
david jencks

On Jan 13, 2010, at 10:14 AM, Shanmu wrote:

> Hello everyone, We are using Geronimo 2.1.4 with informix XA driver  
> version 3.0.0 JC3. The application we build has a process which runs  
> in the geronimo containner every 2 minutes and updates lots of  
> tables. in foreground we a web application where users can access  
> screen and update and retrieve from the same tables. Our  
> architecture is like this JSP/Struts 2 --> EJB 3.0 with CMT--> DAO  
> using hibernate uses data source configured in geronimo server-->  
> informix DB We have configured the data source using the informix  
> provided drivers and the informix Tran QL connectors. We are  
> currently facing a problem where we are getting locking issues  
> frequently when the user and batch process collides. The error is  
> "Could not do a physical-order read to fetch next row.SQL Error:  
> -107, SQLState: IX000" The solution provided was to increase the  
> IFX_LOCK_MODE_WAIT to some reasonable time so that the process waits  
> for the predefined time before it throws the error. Default value  
> for this is configured as zero in IFXDatasource. By default data  
> source configured using the informix XA option does not have any  
> option to configure this parameter. Neither the hibernate has any  
> configuration for this, as it is using the data source created in  
> application server. On analyzing the source code we noticed that  
> there is a component org.tranql.connector.informix.XAMCF part of  
> tran QL adapter which creates and configures the data source, public  
> XAMCF() { super(new IfxXADataSource(), new  
> NoExceptionsAreFatalSorter()); password = ""; ds =  
> (IfxXADataSource)xaDataSource; } This IFXData source doesn not have  
> the option of lock mode wait setup, which can be done using the  
> method "setIfxIFX_LOCK_MODE_WAIT". My questions are: 1. Is there any  
> option where in we can configure the IFX_LOCK_MODE_WAIT parameter?  
> 2. If not is there any patch with this enhancement done. Thanks in  
> advance Best Regards Shanmu
> View this message in context: Informix XA data source configuration  
> for IFX_LOCK_MODE_WAIT
> Sent from the Apache Geronimo - Dev mailing list archive at  
> Nabble.com.