Hi, I think this is a problem with the JDBC driver, you should use autoconnect, I think there's a parameter in the jdbc connection string for mySQL, I could be that this is deprecated maybe you configure a validation query, just google for this term,
br Meex 2014-04-08 13:19 GMT+02:00 Sampath Uppula <[email protected]>: > Hi Andrus, > Below is the Stacktrace for Global exception. > This is very common issue in my application, please suggest a way to resolve > this issue. > > ------------------------------------------------------------------------------------------------------- > > a:175) > at > org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTa > gSupport.java:42) > at > org.apache.jsp.eConIndex_jsp._jspx_meth_s_005faction_005f0(eConIndex_ > jsp.java:94) > at org.apache.jsp.eConIndex_jsp._jspService(eConIndex_jsp.java:66) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper > .java:432) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3 > 90) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:305) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter > .doFilter(StrutsPrepareAndExecuteFilter.java:88) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebAppli > cationContextFilter.java:93) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrid > eFilter.java:125) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > com.techm.econvergence.encodingFilter.CharacterEncodingFilter.doFilte > r(CharacterEncodingFilter.java:23) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV > alve.java:222) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV > alve.java:123) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica > torBase.java:472) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j > ava:171) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j > ava:99) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: > 936) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal > ve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav > a:407) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp > 11Processor.java:1004) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process( > AbstractProtocol.java:589) > at > org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin > t.java:1822) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown > Source > ) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: > Communicatio > ns link failure > > The last packet successfully received from the server was 222,640,374 > millisecon > ds ago. The last packet sent successfully to the server was 0 milliseconds > ago. > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown > Source) > > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown > Sou > rce) > at java.lang.reflect.Constructor.newInstance(Unknown Source) > at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) > at > com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1 > 118) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3055) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2941) > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489) > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959) > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113) > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562) > at > com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4956) > > at > org.apache.cayenne.conn.PooledConnectionImpl.getConnection(PooledConn > ectionImpl.java:128) > at > org.apache.cayenne.conn.PoolManager.uncheckConnection(PoolManager.jav > a:369) > at > org.apache.cayenne.conn.PoolManager.getConnection(PoolManager.java:35 > 3) > at > org.apache.cayenne.conn.PoolManager.getConnection(PoolManager.java:33 > 0) > at > org.apache.cayenne.access.DataNode$TransactionDataSource.getConnectio > n(DataNode.java:364) > at > org.apache.cayenne.access.DataNode.performQueries(DataNode.java:248) > ... 70 more > Caused by: java.net.SocketException: Software caused connection abort: recv > fail > ed > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(Unknown Source) > at > com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.ja > va:114) > at > com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNe > cessary(ReadAheadInputStream.java:161) > at > com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.ja > va:189) > at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2499) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2952) > ... 82 more > org.apache.cayenne.CayenneRuntimeException: [v.3.0.2 Jun 11 2011 09:52:20] > Globa > l exception. > at > org.apache.cayenne.access.DataDomainQueryAction.nextGlobalException(D > ataDomainQueryAction.java:553) > at > org.apache.cayenne.access.DataNode.performQueries(DataNode.java:258) > at > org.apache.cayenne.access.DataDomainQueryAction.runQuery(DataDomainQu > eryAction.java:422) > at > org.apache.cayenne.access.DataDomainQueryAction.access$000(DataDomain > QueryAction.java:69) > at > org.apache.cayenne.access.DataDomainQueryAction$2.transform(DataDomai > nQueryAction.java:395) > at > org.apache.cayenne.access.DataDomain.runInTransaction(DataDomain.java > :850) > at > org.apache.cayenne.access.DataDomainQueryAction.runQueryInTransaction > (DataDomainQueryAction.java:392) > at > org.apache.cayenne.access.DataDomainQueryAction.execute(DataDomainQue > ryAction.java:121) > at org.apache.cayenne.access.DataDomain.onQuery(DataDomain.java:743) > at > org.apache.cayenne.util.ObjectContextQueryAction.runQuery(ObjectConte > xtQueryAction.java:334) > at > org.apache.cayenne.util.ObjectContextQueryAction.executePostCache(Obj > ectContextQueryAction.java:104) > at > org.apache.cayenne.util.ObjectContextQueryAction.execute(ObjectContex > tQueryAction.java:91) > at > org.apache.cayenne.access.DataContext.onQuery(DataContext.java:1293) > at > org.apache.cayenne.access.DataContext.performQuery(DataContext.java:1 > 282) > at > com.techm.econvergence.util.RequestDelegate.getFilterVaulesListForQue > ry(RequestDelegate.java:2737) > at > com.techm.econvergence.dashboard.util.DashboardRequestDelegate.getCus > tomerDetail(DashboardRequestDelegate.java:2232) > at > com.techm.econvergence.action.MaineConvergenceAction.<init>(MaineConv > ergenceAction.java:45) > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown > Source) > > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown > Sou > rce) > at java.lang.reflect.Constructor.newInstance(Unknown Source) > at java.lang.Class.newInstance0(Unknown Source) > at java.lang.Class.newInstance(Unknown Source) > at > com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:13 > 1) > at > com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:16 > 2) > at > com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:15 > 1) > at > com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java: > 121) > at > com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultA > ctionInvocation.java:300) > at > com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInv > ocation.java:400) > at > com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy > .java:194) > at > org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.j > ava:63) > at > org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(St > rutsActionProxyFactory.java:39) > at > com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(D > efaultActionProxyFactory.java:58) > at > org.apache.struts2.components.ActionComponent.executeAction(ActionCom > ponent.java:289) > at > org.apache.struts2.components.ActionComponent.end(ActionComponent.jav > a:175) > at > org.apache.struts2.views.jsp.ComponentTagSupport.doEndTag(ComponentTa > gSupport.java:42) > at > org.apache.jsp.eConIndex_jsp._jspx_meth_s_005faction_005f0(eConIndex_ > jsp.java:94) > at org.apache.jsp.eConIndex_jsp._jspService(eConIndex_jsp.java:66) > at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > at > org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper > .java:432) > at > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3 > 90) > at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334) > at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:305) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter > .doFilter(StrutsPrepareAndExecuteFilter.java:88) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.cayenne.conf.WebApplicationContextFilter.doFilter(WebAppli > cationContextFilter.java:93) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.displaytag.filter.ResponseOverrideFilter.doFilter(ResponseOverrid > eFilter.java:125) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > com.techm.econvergence.encodingFilter.CharacterEncodingFilter.doFilte > r(CharacterEncodingFilter.java:23) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl > icationFilterChain.java:243) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF > ilterChain.java:210) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV > alve.java:222) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextV > alve.java:123) > at > org.apache.catalina.authenticator.AuthenticatorBase.invoke(Authentica > torBase.java:472) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j > ava:171) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j > ava:99) > at > org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java: > 936) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal > ve.java:118) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav > a:407) > at > org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp > 11Processor.java:1004) > at > org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process( > AbstractProtocol.java:589) > at > org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoin > t.java:1822) > at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown > Source > ) > at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) > at java.lang.Thread.run(Unknown Source) > Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: > Communicatio > ns link failure > > The last packet successfully received from the server was 108,030,871 > millisecon > ds ago. The last packet sent successfully to the server was 0 milliseconds > ago. > > at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native > Method) > > at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown > Source) > > at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown > Sou > rce) > at java.lang.reflect.Constructor.newInstance(Unknown Source) > at com.mysql.jdbc.Util.handleNewInstance(Util.java:409) > at > com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1 > 118) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:3055) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2941) > at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3489) > at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959) > at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113) > at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2562) > at > com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:4956) > > at > org.apache.cayenne.conn.PooledConnectionImpl.getConnection(PooledConn > ectionImpl.java:128) > at > org.apache.cayenne.conn.PoolManager.uncheckConnection(PoolManager.jav > a:369) > at > org.apache.cayenne.conn.PoolManager.getConnection(PoolManager.java:35 > 3) > at > org.apache.cayenne.conn.PoolManager.getConnection(PoolManager.java:33 > 0) > at > org.apache.cayenne.access.DataNode$TransactionDataSource.getConnectio > n(DataNode.java:364) > at > org.apache.cayenne.access.DataNode.performQueries(DataNode.java:248) > ... 70 more > Caused by: java.net.SocketException: Software caused connection abort: recv > fail > ed > at java.net.SocketInputStream.socketRead0(Native Method) > at java.net.SocketInputStream.read(Unknown Source) > at > com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.ja > va:114) > at > com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNe > cessary(ReadAheadInputStream.java:161) > at > com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.ja > va:189) > at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2499) > at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2952) > ... 82 more > > ------------------------------------------------------------------------------------------------------- > > > Thanks , > Sampath Uppula > ________________________________________ > From: Andrus Adamchik [[email protected]] > Sent: Monday, March 10, 2014 4:59 PM > To: [email protected] > Subject: Re: Cayenne 3.0.2 - Global exception - frequent issue in my > application > > A DataContext exists without a live database connection. Only when you do > something with it (like run a query, or commit some objects) it opens a > connection, and then releases it immediately when the operation is done. > > Andrus > > On Mar 10, 2014, at 2:19 PM, Sampath Uppula <[email protected]> > wrote: > >> Hi, >> I am really wondering even after getting the DataContext object why I am >> facing the issue to connect the database. >> Object Context : >>>> org.apache.cayenne.access.DataContext@50ab9eed >> >> The reason to disable the stack trace in live is to reduce the log size and >> improve the performance. >> >> Thanks , >> Sampath Uppula >> >> -----Original Message----- >> From: Andrus Adamchik [mailto:[email protected]] >> Sent: 10 March 2014 16:32 >> To: [email protected] >> Subject: Re: Cayenne 3.0.2 - Global exception - frequent issue in my >> application >> >> Then it is impossible to tell what really happened. This can be something >> simple like a JDBC connection error, or anything else really. But we don't >> know. >> >> Could you turn on logging of stack traces in a live environment? Why is it >> disabled? >> >> Andrus >> >> >> On Mar 10, 2014, at 1:58 PM, Sampath Uppula <[email protected]> >> wrote: >> >>> Hi Andrus, >>> Thanks for the quick update. >>> But I cannot provide the stack trace right now because this issue is >>> occurring in the live environment. >>> >>> I am using the below jars related to Cayenne in the web application which >>> is deployed on Tomcat 7. >>> cayenne-client-3.0.2.jar >>> cayenne-modeler-3.0.2.jar >>> cayenne-server-3.0.2.jar >>> cayenne-tools-3.0.2.jar >>> >>> Please suggest a way to resolve this issue. >>> >>> Thanks, >>> Sampath Uppula. >>> >>> -----Original Message----- >>> From: Andrus Adamchik [mailto:[email protected]] >>> Sent: 10 March 2014 16:09 >>> To: [email protected] >>> Subject: Re: Cayenne 3.0.2 - Global exception - frequent issue in my >>> application >>> >>> Hi there, do you have a full stack trace of the exception? It should reveal >>> lots of useful details. >>> >>> I am also confused with this class present in your logs: >>> org.apache.cayenne.modeler.util.ModelerLogger. >>> >>> Andrus >>> >>> On Mar 10, 2014, at 1:29 PM, Sampath Uppula <[email protected]> >>> wrote: >>> >>>> Hi, >>>> I am using Cayenne 3.0.2 with Mysql database. >>>> >>>> In my email scheduler, I am using the DataContext object to read the data >>>> from the database. >>>> I am getting the DataContext properly but when I am executing the below >>>> line I am getting the Global exception. >>>> >>>> dashboardfilterCreateObj = >>>> DataObjectUtils.objectForPK(context,DashboardFilterCreate.class, >>>> reportId); >>>> >>>> Can you please throw some light on it to resolve the issue. >>>> >>>> [INFO] [getDataContext],[19],[@@@@@@ DataContext is returned] [INFO] >>>> [emailDailyReportScheduler],[2777],[Object Context : >>>> org.apache.cayenne.access.DataContext@50ab9eed] >>>> [INFO] [emailDailyReportScheduler],[2781],[-- Report ID is : 11] >>>> [INFO] >>>> [org.apache.cayenne.modeler.util.ModelerLogger],[info],[78],[--- will >>>> run 1 query.] [INFO] >>>> [org.apache.cayenne.modeler.util.ModelerLogger],[info],[83],[*** >>>> error.] [ERROR] [emailDailyReportScheduler],[2843],[Exception >>>> occurred in emailDailyReportScheduler(). Exception Details : [v.3.0.2 >>>> Jun 11 >>>> 2011 09:52:20] Global exception.] >>>> >>>> Thanks, >>>> Sampath Uppula. >>>> >>>> ===================================================================== >>>> = ====================================================== >>>> Disclaimer: This message and the information contained herein is >>>> proprietary and confidential and subject to the Tech Mahindra policy >>>> statement, you may review the policy at >>>> http://www.techmahindra.com/Disclaimer.html externally >>>> http://tim.techmahindra.com/tim/disclaimer.html internally within >>>> TechMahindra. >>>> ===================================================================== >>>> = ====================================================== >>>> >>>> >>>> >>>> ===================================================================== >>>> = ====================================================== >>>> Disclaimer: This message and the information contained herein is >>>> proprietary and confidential and subject to the Tech Mahindra policy >>>> statement, you may review the policy at >>>> http://www.techmahindra.com/Disclaimer.html externally >>>> http://tim.techmahindra.com/tim/disclaimer.html internally within >>>> TechMahindra. >>>> ===================================================================== >>>> = ====================================================== >>>> >>> >>> >>> >>> ====================================================================== >>> ======================================================Disclaimer: >>> This message and the information contained herein is proprietary and >>> confidential and subject to the Tech Mahindra policy statement, you >>> may review the policy at http://www.techmahindra.com/Disclaimer.html >>> externally http://tim.techmahindra.com/tim/disclaimer.html internally >>> within >>> TechMahindra.========================================================= >>> =================================================================== >>> >>> >>> ====================================================================== >>> ====================================================== >>> Disclaimer: This message and the information contained herein is >>> proprietary and confidential and subject to the Tech Mahindra policy >>> statement, you may review the policy at >>> http://www.techmahindra.com/Disclaimer.html externally >>> http://tim.techmahindra.com/tim/disclaimer.html internally within >>> TechMahindra. >>> ====================================================================== >>> ====================================================== >>> >>> >> >> >> >> ============================================================================================================================ >> Disclaimer: This message and the information contained herein is >> proprietary and confidential and subject to the Tech Mahindra policy >> statement, you may review the policy at >> http://www.techmahindra.com/Disclaimer.html externally >> http://tim.techmahindra.com/tim/disclaimer.html internally within >> TechMahindra. >> ============================================================================================================================ >> >> >> >> ============================================================================================================================ >> Disclaimer: This message and the information contained herein is >> proprietary and confidential and subject to the Tech Mahindra policy >> statement, you may review the policy at >> http://www.techmahindra.com/Disclaimer.html externally >> http://tim.techmahindra.com/tim/disclaimer.html internally within >> TechMahindra. >> ============================================================================================================================ >> > > > > ============================================================================================================================ > Disclaimer: This message and the information contained herein is proprietary > and confidential and subject to the Tech Mahindra policy statement, you may > review the policy at http://www.techmahindra.com/Disclaimer.html externally > http://tim.techmahindra.com/tim/disclaimer.html internally within > TechMahindra. > ============================================================================================================================ > > > ============================================================================================================================ > > Disclaimer: This message and the information contained herein is proprietary > and confidential and subject to the Tech Mahindra policy statement, you may > review the policy at http://www.techmahindra.com/Disclaimer.html externally > http://tim.techmahindra.com/tim/disclaimer.html internally within > TechMahindra. > > ============================================================================================================================ > > -- Markus Reich Moosbach 28/2 6392 St. Jakob i.H. www.markusreich.at / www.meeximum.at [email protected]
