cancel
Showing results for 
Search instead for 
Did you mean: 

Speed up SDM deployment?

Former Member
0 Kudos

Hi,

We're currently investigating methods for optimizing the SDM deployment, so that it takes shorter time and wondered if anyone have discovered some methods.

We've got an EP Nw04s SP09 system which we want to patch to the newest patch level (still on SP09) for these components:

*EPSERV

*EPBC

*EPBC2

*SAPJEE

*SAPJEECORE

*SAPJTECHS

*SAPJTECHF

In total about 290 MB.

On my dev workplace installation with MaxDB the actual SDM deployment took about 110 minutes, but on our sandbox system on HP-UX with Oracle it took 440 minutes. Because of this we have problems fitting the patching in outside our major upgrade windows.

What could be the bottleneck and explain the difference ?

*Database access?

*Files under SDM\root?

*HP-UX JVM parameters (I've seen note 796560)

Is there anything we can do to speed up the deployment, for example:

  • Move a database table into memory

  • Delete files on the files system (for example under SDM\root)

  • Update JVM parameters

  • Press F12 five times while sitting on the desk

Anyone with some positive experiences?

Regards

Dagfinn

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

check the cpu usage and the io

(you can see this information in the task manager)

if it is a ORACLE than you would see high io in the DB process,

you may create an oracle trace with the standard gui tools of ORACLE

(you don't necceserly have to use TOAD)

if it is j2ee error you would see high io/cpu in the j2ee process.

Answers (3)

Answers (3)

Former Member
0 Kudos

No real solution, but can live with it and test again for newer support packages.

Former Member
0 Kudos

On HP-UX there is an issue with the JIT which was causing some stability issues with SDM. As such, the JIT compiler has been disabled for the SDM process. Please see SAP note 991283.

Disabling the JIT compiler for SDM on HP-UX was hard-coded in the JLaunch program. The HP Java VM does not provide a means to "undo" the effects of the critical "-Djava.compiler=NONE" parameter.

That code sequence has been removed in SPS10.

That change is incorporated in the database-independent part of SPS10, a downport/patch is not possible.

You can, however, install the Kernel binaries from SP10 SAPEXE.SAR without upgrading the Java part of the system.

Cheers, Ventsi

Former Member
0 Kudos

everying can be the bottleneck:

*Database access

*Files under SDM\root

*HP-UX JVM parameters (I've seen note 796560)

my guess is the database access.

in order to check every one of them do the following:

DB - create a db trace via SAP or via the DB,

to do a sql trace via SAP, enter to the server of the j2ee, under: http://<server>:50000, and create a "SQL Trace" in the MaxDB and

do the same thing in the ORACLE.

(alternately you can do an sql trace via the DB, in order to do this use each DB tools)

You probebly would find a statment that takes a lot of time,

and creating an index/updating the statistics would solve the problem.

to check files under SDM\root you can use perfmon and monitor the disk response time or just go to http://www.microsoft.com/technet/sysinternals/default.mspx and download "file and disk utilities" (however, filesystem is not likely the problem)

if the jvm parameters are set incorrectly,

you might see high cpu usage while deploying at the HP.

Former Member
0 Kudos

Hi,

Alot of what you suggest is what I've done to analyse the slowness.

Unfortunately the SQL trace only applies to the J2EE server node, not SDM which is a separate process (I've even attached the SDM to Wily introscope , but it didn't give me much data).

I looked abit at MaxDB and tracing queries/session, but didn't really find any good information (the database trace in database manager don't seem to be activated even though I set the level for the parts I want).

For Oracle it is a bit of hassle to do the tracing without Toad (which we don't have right now).

I did some thread dumps(via kill -3) during SDM logon which is also slow.

I taken out the stacktraces which are important, they are taken with a few minutes between them. Especially the XML parsing is taking quite some time to process (I assume it is parsing the xml files in SDM/program/config/)

But all this still doesn't help me much.

"Worker #2" prio=10 tid=6000000001439f20 nid=21 lwp_id=3549130 runnable [9fffffff9ecd8000..9fffffff9ecd8cf0]

at com.sap.sdm.util.graph.impl.DiGraphImpl.<init>(DiGraphImpl.java:51)

at com.sap.sdm.util.graph.impl.DiGraphImpl.constructSubgraph(DiGraphImpl.java:335)

at com.sap.sdm.app.proc.undeployment.impl.DeploymentGraphSorter.sortSdaActions(DeploymentGraphSorter.java:68)

at com.sap.sdm.app.proc.undeployment.impl.DeploymentGraphBuilder.build(DeploymentGraphBuilder.java:46)

at com.sap.sdm.app.proc.undeployment.impl.UndeploymentProcessImpl.<init>(UndeploymentProcessImpl.java:21)

at com.sap.sdm.app.proc.undeployment.impl.FactoryImpl.createProcess(FactoryImpl.java:16)

at com.sap.sdm.app.view.proc.undeployment.impl.local.FactoryImpl.createProcess(FactoryImpl.java:16)

at com.sap.sdm.app.view.proc.undeployment.impl.remote.server.InitialCallBackImpl.createInitialObject(InitialCallBackImpl.java:25)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.requestRemoteCall(RemoteProxyServerImpl.java:57)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.process(RemoteProxyServerImpl.java:38)

at com.sap.sdm.gui.server.GuiAdminRoleCmdProcessor.process(GuiAdminRoleCmdProcessor.java:72)

at com.sap.sdm.is.cs.session.server.SessionCmdProcessor.process(SessionCmdProcessor.java:67)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:76)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)

"Worker #2" prio=3 tid=6000000001439f20 nid=21 lwp_id=3549130 runnable [9fffffff9ecd8000..9fffffff9ecd8cf0]

at java.lang.String.hashCode(String.java:1277)

at com.sap.sdm.repo.impl.SdaDeploymentImpl.hashCode(SdaDeploymentImpl.java:83)

at com.sap.sdm.util.graph.impl.NodeImpl.hashCode(NodeImpl.java:55)

at java.util.HashMap.hash(HashMap.java:261)

at java.util.HashMap.put(HashMap.java:379)

at java.util.HashSet.add(HashSet.java:192)

at com.sap.sdm.util.graph.impl.DiGraphImpl.constructSubgraph(DiGraphImpl.java:319)

at com.sap.sdm.app.proc.undeployment.impl.DeploymentGraphSorter.sortSdaActions(DeploymentGraphSorter.java:68)

at com.sap.sdm.app.proc.undeployment.impl.DeploymentGraphBuilder.build(DeploymentGraphBuilder.java:46)

at com.sap.sdm.app.proc.undeployment.impl.UndeploymentProcessImpl.<init>(UndeploymentProcessImpl.java:21)

at com.sap.sdm.app.proc.undeployment.impl.FactoryImpl.createProcess(FactoryImpl.java:16)

at com.sap.sdm.app.view.proc.undeployment.impl.local.FactoryImpl.createProcess(FactoryImpl.java:16)

at com.sap.sdm.app.view.proc.undeployment.impl.remote.server.InitialCallBackImpl.createInitialObject(InitialCallBackImpl.java:25)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.requestRemoteCall(RemoteProxyServerImpl.java:57)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.process(RemoteProxyServerImpl.java:38)

at com.sap.sdm.gui.server.GuiAdminRoleCmdProcessor.process(GuiAdminRoleCmdProcessor.java:72)

at com.sap.sdm.is.cs.session.server.SessionCmdProcessor.process(SessionCmdProcessor.java:67)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:76)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)

"Worker #2" prio=8 tid=6000000001439f20 nid=21 lwp_id=3549130 waiting on condition [9fffffff9ecd8000..9fffffff9ecd8cf0]

at java.lang.Thread.sleep(Native Method)

at com.sap.engine.lib.xml.parser.readers.EncodedDataReader.fetchData(EncodedDataReader.java:336)

at com.sap.engine.lib.xml.parser.readers.EncodedDataReader.read(EncodedDataReader.java:165)

at com.sap.engine.lib.xml.parser.helpers.AdvancedXMLStreamReader.read(AdvancedXMLStreamReader.java:143)

at com.sap.engine.lib.xml.parser.helpers.AdvancedXMLStreamReader.loadLastChar(AdvancedXMLStreamReader.java:108)

at com.sap.engine.lib.xml.parser.helpers.AdvancedXMLStreamReader.scanByte(AdvancedXMLStreamReader.java:162)

at com.sap.engine.lib.xml.parser.XMLParser.scanEndTag(XMLParser.java:1929)

at com.sap.engine.lib.xml.parser.XMLParser.scanElement(XMLParser.java:1844)

at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2843)

at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:165)

at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:245)

at com.sap.engine.lib.xml.parser.Parser.parseWithoutSchemaValidationProcessing(Parser.java:280)

at com.sap.engine.lib.xml.parser.Parser.parse(Parser.java:342)

at com.sap.engine.lib.xml.parser.SAXParser.parse(SAXParser.java:125)

at com.sap.sdm.xml.extern.XMLElementBuilder.createXMLElementFromStream(XMLElementBuilder.java:178)

at com.sap.sdm.xml.extern.XMLElementBuilder.createXMLElementfromString(XMLElementBuilder.java:195)

at com.sap.sdm.xml.XMLElementDefaultFactory.createXMLElementfromString(XMLElementDefaultFactory.java:75)

at com.sap.sdm.is.cs.cmd.xml.XMLizerXML.parse(XMLizerXML.java:19)

at com.sap.sdm.is.cs.remoteproxy.common.xml.CmdRemoteCallXMLizerXML.fromXMLString(CmdRemoteCallXMLizerXML.java:44)

at com.sap.sdm.is.cs.cmd.CmdXMLFactory.fromXmlString(CmdXMLFactory.java:48)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:61)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)

"Worker #1" prio=2 tid=6000000000d9f9e0 nid=20 lwp_id=3549124 runnable [9fffffff7e21c000..9fffffff7e21ccf0]

at java.lang.StringBuffer.<init>(StringBuffer.java:115)

at java.lang.StringBuffer.<init>(StringBuffer.java:103)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:66)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VUASelectableImpl.<init>(VUASelectableImpl.java:30)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VUndeploymentActionPool.map(VUndeploymentActionPool.java:46)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VSelectingDeploymentsImpl.getSelectables(VSelectingDeploymentsImpl.java:75)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.requestRemoteCall(RemoteProxyServerImpl.java:127)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.process(RemoteProxyServerImpl.java:38)

at com.sap.sdm.gui.server.GuiAdminRoleCmdProcessor.process(GuiAdminRoleCmdProcessor.java:72)

at com.sap.sdm.is.cs.session.server.SessionCmdProcessor.process(SessionCmdProcessor.java:67)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:76)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)

"Worker #1" prio=7 tid=6000000000d9f9e0 nid=20 lwp_id=3549124 runnable [9fffffff7e21b000..9fffffff7e21ccf0]

at java.lang.StringBuffer.expandCapacity(StringBuffer.java:235)

at java.lang.StringBuffer.append(StringBuffer.java:442)

- locked <9fffffffa21258f0> (a java.lang.StringBuffer)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:66)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.proc.undeployment.impl.UASelectableImpl.getExecutableState(UASelectableImpl.java:59)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VUASelectableImpl.<init>(VUASelectableImpl.java:30)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VUndeploymentActionPool.map(VUndeploymentActionPool.java:46)

at com.sap.sdm.app.view.proc.undeployment.impl.local.VSelectingDeploymentsImpl.getSelectables(VSelectingDeploymentsImpl.java:75)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.requestRemoteCall(RemoteProxyServerImpl.java:127)

at com.sap.sdm.is.cs.remoteproxy.server.impl.RemoteProxyServerImpl.process(RemoteProxyServerImpl.java:38)

at com.sap.sdm.gui.server.GuiAdminRoleCmdProcessor.process(GuiAdminRoleCmdProcessor.java:72)

at com.sap.sdm.is.cs.session.server.SessionCmdProcessor.process(SessionCmdProcessor.java:67)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:76)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)

"Worker #1" prio=10 tid=6000000000d9f9e0 nid=20 lwp_id=3549124 runnable [9fffffff7e21c000..9fffffff7e21ccf0]

at java.net.SocketInputStream.socketRead0(Native Method)

at java.net.SocketInputStream.read(SocketInputStream.java:134)

at sun.nio.cs.StreamDecoder$CharsetSD.readBytes(StreamDecoder.java:408)

at sun.nio.cs.StreamDecoder$CharsetSD.implRead(StreamDecoder.java:450)

at sun.nio.cs.StreamDecoder.read(StreamDecoder.java:182)

- locked <9fffffffa0f0b438> (a java.io.InputStreamReader)

at java.io.InputStreamReader.read(InputStreamReader.java:167)

at com.sap.bc.cts.tp.net.NetComm.receive(NetComm.java:322)

at com.sap.bc.cts.tp.net.NetComm.receiveHdr(NetComm.java:286)

at com.sap.bc.cts.tp.net.NetComm.receive(NetComm.java:119)

at com.sap.sdm.is.cs.ncwrapper.impl.NetCommWrapper.receive(NetCommWrapper.java:36)

at com.sap.sdm.is.cs.cmd.server.CmdServer.execCommand(CmdServer.java:55)

at com.sap.sdm.client_server.launch.ServerLauncher$ConnectionHandlerImpl.handle(ServerLauncher.java:286)

at com.sap.sdm.is.cs.ncserver.NetCommServer.serve(NetCommServer.java:43)

at com.sap.sdm.is.cs.ncwrapper.impl.ServiceWrapper.serve(ServiceWrapper.java:39)

at com.sap.bc.cts.tp.net.Worker.run(Worker.java:50)

at java.lang.Thread.run(Thread.java:534)