It's all about the answers!

Ask a question

RTC and Build Forge Integration


David Rostocil (911410) | asked May 24 '10, 1:17 p.m.
My team has a WAS server running RTC 2.0.0.2 with Build Forge integration. We are able to start builds and view some information from the Build Forge server through RTC, however we are also having some problems. First, CPU usage on the server is constantly hovering around 60% usage with no load when Build Forge integration is deployed. It was close to 0% without. I noticed that the BuildForgeEventPollerScheduledTask is constantly running in the 'Active Services' from the server admin page. Here is the stacktrace from that task:

com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.executeTaskby ADMIN, 01:11:27:046 running time com.buildforge.services.common.ssl.BuildForgeSSLEngine.write(BuildForgeSSLEngine.java:154)
com.buildforge.services.client.api.SecureAPIClientBuffer.flush(SecureAPIClientBuffer.java:64)
com.buildforge.services.common.api.JsonProtocolImpl.writeFooter(JsonProtocolImpl.java:363)
com.buildforge.services.client.api.APIClientConnection.call(APIClientConnection.java:581)
com.buildforge.services.client.api.APIClientConnection.logout(APIClientConnection.java:732)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask
.disconnectFromBuildForge(BuildForgeEventPollerScheduledTask.java:481)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask
.runTask(BuildForgeEventPollerScheduledTask.java:393)
com.ibm.team.repository.service.async.AbstractAutoScheduledTask
.executeTask(AbstractAutoScheduledTask.java:88)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler
.invoke(ExportProxyServiceRecord.java:56)
$Proxy234.executeTask(Unknown Source)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)
java.lang.Thread.run(Thread.java:810)

Shouldn't this task be executed every 15 seconds and not have a running time approx. the same as server uptime? I suspect this task is stuck. Perhaps with SSL authentication against the Build Forge server?

Any thoughts are appreciated.

Thanks,
-Dave

3 answers



permanent link
Peter Birk (501145) | answered May 24 '10, 2:24 p.m.
JAZZ DEVELOPER
My team has a WAS server running RTC 2.0.0.2 with Build Forge integration. We are able to start builds and view some information from the Build Forge server through RTC, however we are also having some problems. First, CPU usage on the server is constantly hovering around 60% usage with no load when Build Forge integration is deployed. It was close to 0% without. I noticed that the BuildForgeEventPollerScheduledTask is constantly running in the 'Active Services' from the server admin page. Here is the stacktrace from that task:

com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.executeTaskby ADMIN, 01:11:27:046 running time com.buildforge.services.common.ssl.BuildForgeSSLEngine.write(BuildForgeSSLEngine.java:154)
com.buildforge.services.client.api.SecureAPIClientBuffer.flush(SecureAPIClientBuffer.java:64)
com.buildforge.services.common.api.JsonProtocolImpl.writeFooter(JsonProtocolImpl.java:363)
com.buildforge.services.client.api.APIClientConnection.call(APIClientConnection.java:581)
com.buildforge.services.client.api.APIClientConnection.logout(APIClientConnection.java:732)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.disconnectFromBuildForge(BuildForgeEventPollerScheduledTask.java:481)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.runTask(BuildForgeEventPollerScheduledTask.java:393)
com.ibm.team.repository.service.async.AbstractAutoScheduledTask.executeTask(AbstractAutoScheduledTask.java:88)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
$Proxy234.executeTask(Unknown Source)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)
java.lang.Thread.run(Thread.java:810)

Shouldn't this task be executed every 15 seconds and not have a running time approx. the same as server uptime? I suspect this task is stuck. Perhaps with SSL authentication against the Build Forge server?

Any thoughts are appreciated.

Thanks,
-Dave


Dave,

It appears you are having some connection or session problems that's causing the high CPU usage. The tasks do wake up every 15 seconds to check for events or build requests. You can modify that to be less frequently in the Active Services view you mentioned. Typically, the check for events does not take much CPU, but when problems occur, it takes a lot more to handle exceptions and do retries. We should try to get to the bottom of what the problem is. The stack you put there is a disconnection due to a problem, but it's not the root cause exception. Did you see other exceptions in jazz.log? If not, you can get detailed information by enabling trace. To do this, edit server.startup.bat and add -Dcom.buildforge.rtc.plugin.debug=true to JAVA_OPTS line. Then restart your RTC server and you'll see buildforge_service.log in the same directory. It will contain detailed information about the problem. You can send that information to my email, pbirk@us.ibm.com. If you have multiple build definitions, make sure the hostnames are exactly the same for each of them when pointing to the same BF server and using the same BF user. Also, make sure the users are completely dedicated, not used outside of RTC build definitions.

Regards,
Pete

permanent link
David Rostocil (911410) | answered May 24 '10, 2:38 p.m.
Pete, thanks for the quick reply. I have had debugging turned on for some time now but I don't see anything relevant. I am going to stop my server, clean up the logs, and send you some fresh logs.

My team has a WAS server running RTC 2.0.0.2 with Build Forge integration. We are able to start builds and view some information from the Build Forge server through RTC, however we are also having some problems. First, CPU usage on the server is constantly hovering around 60% usage with no load when Build Forge integration is deployed. It was close to 0% without. I noticed that the BuildForgeEventPollerScheduledTask is constantly running in the 'Active Services' from the server admin page. Here is the stacktrace from that task:

com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.executeTaskby ADMIN, 01:11:27:046 running time com.buildforge.services.common.ssl.BuildForgeSSLEngine.write(BuildForgeSSLEngine.java:154)
com.buildforge.services.client.api.SecureAPIClientBuffer.flush(SecureAPIClientBuffer.java:64)
com.buildforge.services.common.api.JsonProtocolImpl.writeFooter(JsonProtocolImpl.java:363)
com.buildforge.services.client.api.APIClientConnection.call(APIClientConnection.java:581)
com.buildforge.services.client.api.APIClientConnection.logout(APIClientConnection.java:732)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.disconnectFromBuildForge(BuildForgeEventPollerScheduledTask.java:481)
com.ibm.rational.buildforge.team.service.BuildForgeEventPollerScheduledTask.runTask(BuildForgeEventPollerScheduledTask.java:393)
com.ibm.team.repository.service.async.AbstractAutoScheduledTask.executeTask(AbstractAutoScheduledTask.java:88)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:79)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
java.lang.reflect.Method.invoke(Method.java:618)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.invoke(ExportProxyServiceRecord.java:370)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord.access$0(ExportProxyServiceRecord.java:356)
org.eclipse.soda.sat.core.internal.record.ExportProxyServiceRecord$ExportedServiceInvocationHandler.invoke(ExportProxyServiceRecord.java:56)
$Proxy234.executeTask(Unknown Source)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.runTask(AsynchronousTaskRunner.java:118)
com.ibm.team.repository.service.internal.scheduler.AsynchronousTaskRunner.run(AsynchronousTaskRunner.java:92)
java.lang.Thread.run(Thread.java:810)

Shouldn't this task be executed every 15 seconds and not have a running time approx. the same as server uptime? I suspect this task is stuck. Perhaps with SSL authentication against the Build Forge server?

Any thoughts are appreciated.

Thanks,
-Dave


Dave,

It appears you are having some connection or session problems that's causing the high CPU usage. The tasks do wake up every 15 seconds to check for events or build requests. You can modify that to be less frequently in the Active Services view you mentioned. Typically, the check for events does not take much CPU, but when problems occur, it takes a lot more to handle exceptions and do retries. We should try to get to the bottom of what the problem is. The stack you put there is a disconnection due to a problem, but it's not the root cause exception. Did you see other exceptions in jazz.log? If not, you can get detailed information by enabling trace. To do this, edit server.startup.bat and add -Dcom.buildforge.rtc.plugin.debug=true to JAVA_OPTS line. Then restart your RTC server and you'll see buildforge_service.log in the same directory. It will contain detailed information about the problem. You can send that information to my email, pbirk@us.ibm.com. If you have multiple build definitions, make sure the hostnames are exactly the same for each of them when pointing to the same BF server and using the same BF user. Also, make sure the users are completely dedicated, not used outside of RTC build definitions.

Regards,
Pete

permanent link
Peter Birk (501145) | answered May 25 '10, 8:56 a.m.
JAZZ DEVELOPER
Dave,

The 7.1.1.4 connector that I sent seems to have resolved the issue. I did not see any problems in the buildforge_service.log you sent to me to review. Let me know if you have any problems with it.

Regards,
Pete

Your answer


Register or to post your answer.


Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.