The plugin consists of a jar containing the plugin itself, some configs that need to happen in several files, and a set of forms and workflow to utilize the plugin. Essentially turning a 'Push-Modify' operation into a separate transaction.
-----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of William Rentfrow Sent: Friday, November 09, 2012 12:34 PM To: arslist@ARSLIST.ORG Subject: Re: XMLCE hangs, Oracle locks, arschema won't update (long, boring, but important...) Linux, Windows, or non-denominational? :) Is this just a set of xml files + plugin calls in the armonitor and ar.conf? Or are there binaries too? William Rentfrow wrentf...@stratacominc.com http://www.stratacominc.com 715-204-3061 Office 715-498-5056 Cell -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Longwing, LJ CTR MDA/IC Sent: Friday, November 09, 2012 10:04 AM To: arslist@ARSLIST.ORG Subject: Re: XMLCE hangs, Oracle locks, arschema won't update (long, boring, but important...) William, I did a presentation during WWRUG12 that discussed this exact topic. When you have high concurrency and have specific portions of the transaction, that if isolated, would allow for the main items to work without error, can allow for higher concurrency and prevent DB blocking. This topic was exceedingly difficult for me to troubleshoot and identify when I came across it, but eventually discovered that a specific set of transactions within my process were causing DB blocking that caused my transactions to become serial instead of parallel. I developed a plugin and a process that allowed me to isolate that portion of the transaction to a separate DB transaction, and thus allowed for the locking to clear on those tables, then allowing my overall transactions to process faster. I can provide you a copy of the plugin if you would like. It isn't 'production ready', but is 'demo ready' :) -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of William Rentfrow Sent: Friday, November 09, 2012 8:42 AM To: arslist@ARSLIST.ORG Subject: Re: XMLCE hangs, Oracle locks, arschema won't update (long, boring, but important...) Those two are actually in our short list of proposed fixes. Unfortunately we don't have definitive proof of what exactly the problem is. Our proposed list of possible fixes is this: -Set Next-ID-Commit: T (<---default prior to 7.6.03 is F, default in newest versions is T, ours is old hence we need to specify it). -Set Next-ID-Block-Size: 10 -Purge the table the rows are being put into. The performance actually seems pretty good when things are working well but the data is transactional throw-away data once a person is authenticated. We are doing this one for sure this weekend just to be safe -Offload the IVR transactions to their own web server (not likely due to redundancy issues). William Rentfrow wrentf...@stratacominc.com http://www.stratacominc.com 715-204-3061 Office 715-498-5056 Cell -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of Longwing, LJ CTR MDA/IC Sent: Friday, November 09, 2012 9:29 AM To: arslist@ARSLIST.ORG Subject: Re: XMLCE hangs, Oracle locks, arschema won't update (long, boring, but important...) William, If you feel you are dealing with a concurrency issue on arschema, please look into two ar.cfg parameters Next-ID-Commit Next-ID-Block-Size Either one, or a combination of both may help you with your situation. -----Original Message----- From: Action Request System discussion list(ARSList) [mailto:arslist@ARSLIST.ORG] On Behalf Of William Rentfrow Sent: Friday, November 09, 2012 8:25 AM To: arslist@ARSLIST.ORG Subject: XMLCE hangs, Oracle locks, arschema won't update (long, boring, but important...) ** Hi listers - We're seeing something peculiar. This is on a fairly high volume (5000 incidents/day) system. There's an integration with an IVR that does a lookup via web services to authenticate someone is actually an employee. That uses a web service that's been dependable for a couple of years (at least). All this particular WS does is create a new record in a table. The system was recently migrated from Solaris to Linux. It's using ARS 7.1 and ITSM 7.1x - the database is Oracle RAC, remote. I am wondering if there is a known bug because when we look at the log we see this when things are behaving fine (IP removed): Tue Nov 06 2012 10:23:51.7183 */+XMLCE ARXMLCreateEntry from Webservice (protocol 13) at IP address xx.xx.xx.xx Tue Nov 06 2012 10:23:51.7686 */-XMLCE OK But occasionally we see the first line and no corresponding -XMLCE. About 11 minutes (note milliseconds in the error below) later in our SystemOut.log from Websphere: [11/6/12 13:34:04:866 CST] 00000037 SystemOut O - Connects to ARServer (server name removew) through Java Rpc failed with: ERROR (91): RPC call failed; ONC/RPC call timed out [11/6/12 13:34:04:882 CST] 0000006c SystemOut O - getApiRecording: 0 [11/6/12 13:34:04:883 CST] 00000049 SystemOut O - getApiRecording: 0 [11/6/12 13:34:04:920 CST] 00000069 SystemOut O - getApiRecording: 0 [11/6/12 13:36:04:847 CST] 0000006c SystemOut O - getApiRecording: 0 [11/6/12 13:36:04:878 CST] 00000069 SystemOut O - getApiRecording: 0 [11/6/12 13:36:53:342 CST] 000000a2 SystemOut O - getApiRecording: 0 [11/6/12 13:36:53:343 CST] 000000a1 SystemOut O - getApiRecording: 0 [11/6/12 13:37:15:266 CST] 000000a4 SystemOut O - getApiRecording: 0 [11/6/12 13:37:15:266 CST] 000000a5 SystemOut O - getApiRecording: 0 [11/6/12 13:37:35:817 CST] 000000a7 SystemOut O - getApiRecording: 0 [11/6/12 13:38:04:820 CST] 00000037 SystemOut O - getApiRecording: 0 [11/6/12 13:38:04:822 CST] 00000053 SystemOut O - getApiRecording: 0 [11/6/12 13:38:04:826 CST] 0000006c SystemOut O - getApiRecording: 0 [11/6/12 13:38:04:843 CST] 0000002e SystemOut O - getApiRecording: 0 [11/6/12 13:38:04:852 CST] 00000069 SystemOut O - getApiRecording: 0 [11/6/12 13:38:53:307 CST] 000000a2 SystemOut O - getApiRecording: 0 [11/6/12 13:40:04:784 CST] 00000053 SystemOut O - getApiRecording: 0 [11/6/12 13:40:04:802 CST] 0000003c SystemOut O - getApiRecording: 0 [11/6/12 13:40:53:267 CST] 000000a2 SystemOut O - getApiRecording: 0 [11/6/12 13:41:09:066 CST] 00000032 ThreadMonitor W WSVR0605W: Thread "WebContainer : 51" (00000063) has been active for 675278 milliseconds and may be hung. There is/are 1 thread(s) in total in the server that may be hung. at com.remedy.arsys.goat.preferences.ARUserPreferences.getUserPreferences(Unknown Source) at com.remedy.arsys.stubs.SessionData.<init>(Unknown Source) at com.remedy.arsys.session.Login.initWebService(Unknown Source) at com.remedy.arsys.ws.services.ARService.login(Unknown Source) at com.remedy.arsys.ws.services.ARService.processRequest(Unknown Source) at sun.reflect.GeneratedMethodAccessor31.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:618) at org.apache.axis.providers.java.MsgProvider.processMessage(MsgProvider.java:141) at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:319) at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32) at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118) at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83) at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453) at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281) at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699) at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1213) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1154) at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:118) at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:848) at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:691) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:654) at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:526) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:764) at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1478) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:133) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:450) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:508) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:296) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:270) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.determineNextChannel(SSLConnectionLink.java:1069) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink.readyInboundPostHandshake(SSLConnectionLink.java:728) at com.ibm.ws.ssl.channel.impl.SSLConnectionLink$MyHandshakeCompletedCallback.complete(SSLConnectionLink.java:415) at com.ibm.ws.ssl.channel.impl.SSLUtils.handleHandshake(SSLUtils.java:942) at com.ibm.ws.ssl.channel.impl.SSLHandshakeIOCallback.complete(SSLHandshakeIOCallback.java:70) at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:136) at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:196) at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:792) at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:881) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1551) At this point we experience a database lock on the arschema table where Oracle has been trying to update the nextid for the table in the XMLCE and it has not released the lock for the row in question. This is the row for the table that the XMLCE is firing against. Our DBA has to manually clear the locked thread(s - usually more than one) and then the final -XMLCE entry is put into the arapi log file and the system frees up. I've never see this before - and there's not enough information in the logs to determine what exactly is happening. We have a case open with BMC but this has all of the hallmarks of an obscure bug that only happens on Tuesdays during a thunderstorm. Unfortunately it's becoming more frequent. William Rentfrow wrentf...@stratacominc.com http://www.stratacominc.com 715-204-3061 Office 715-498-5056 Cell _attend WWRUG12 www.wwrug.com ARSlist: "Where the Answers Are"_ _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are" _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug12 www.wwrug12.com ARSList: "Where the Answers Are"