Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

Out Of Memory Error when trying to lookup asset type

I have a very simple program that I am running in eclipse. All it does is get a session to a RAM server and looks up an asset type. This is the program:

public static void main(String[] args) {
String ramURL = args;
String ramUserId = args;
String ramPassword = args;

RAMSession session = new RAMSession(ramURL, ramUserId, ramPassword);

try {
RAMAssetType assetType = session.getAssetType("test");
if (assetType == null) {
System.out.println("Asset type is null");
} else {
System.out.println("Asset type was found");
}
} catch(Exception e) {
e.printStackTrace();
}
}


This is the error it generates:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:215)
at java.lang.StringBuffer.toString(StringBuffer.java:585)
at org.apache.axis.message.MessageElement.getAsString(MessageElement.java:1114)
at org.apache.axis.message.MessageElement.toString(MessageElement.java:1272)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at com.ibm.ram.internal.client.RAMHTTPSender.invoke(RAMHTTPSender.java:41)
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.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.ibm.ram.repository.web.ws.core.v72.RAM1SoapBindingStub.getAllAssetTypes(RAM1SoapBindingStub.java:9319)
at com.ibm.ram.internal.access.ws.RAMv72.getAllAssetTypes(RAMv72.java:104)
at com.ibm.ram.internal.client.util.SessionManager.getAssetTypeCache(SessionManager.java:100)
at com.ibm.ram.client.RAMSession.initAssetTypeCache(RAMSession.java:1823)
at com.ibm.ram.client.RAMSession.getAssetType(RAMSession.java:1680)
at iram.test.iRAMUtils.main(iRAMUtils.java:17)

I am able to browse and search the same RAM repo without any issues using the RAM rich client.

How can I get past this error? I have tried increasing the vmargs settings in the eclipse.ini file, but it did not help.

0 votes



One answer

Permanent link
So this is indicating that your client is running out of memory. It seems odd that your would not run out of memory in other operations (search, browse etc).

This call is trying to get the descriptions of all the asset types in your server. Do you know how may you have or why this may be excessively large?

What value are you using for Xmx when you updated your vmargs?


I have a very simple program that I am running in eclipse. All it does is get a session to a RAM server and looks up an asset type. This is the program:

public static void main(String[] args) {
String ramURL = args;
String ramUserId = args;
String ramPassword = args;

RAMSession session = new RAMSession(ramURL, ramUserId, ramPassword);

try {
RAMAssetType assetType = session.getAssetType("test");
if (assetType == null) {
System.out.println("Asset type is null");
} else {
System.out.println("Asset type was found");
}
} catch(Exception e) {
e.printStackTrace();
}
}


This is the error it generates:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOfRange(Arrays.java:3209)
at java.lang.String.<init>(String.java:215)
at java.lang.StringBuffer.toString(StringBuffer.java:585)
at org.apache.axis.message.MessageElement.getAsString(MessageElement.java:1114)
at org.apache.axis.message.MessageElement.toString(MessageElement.java:1272)
at org.apache.axis.transport.http.HTTPSender.readFromSocket(HTTPSender.java:796)
at org.apache.axis.transport.http.HTTPSender.invoke(HTTPSender.java:144)
at com.ibm.ram.internal.client.RAMHTTPSender.invoke(RAMHTTPSender.java:41)
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.client.AxisClient.invoke(AxisClient.java:165)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.ibm.ram.repository.web.ws.core.v72.RAM1SoapBindingStub.getAllAssetTypes(RAM1SoapBindingStub.java:9319)
at com.ibm.ram.internal.access.ws.RAMv72.getAllAssetTypes(RAMv72.java:104)
at com.ibm.ram.internal.client.util.SessionManager.getAssetTypeCache(SessionManager.java:100)
at com.ibm.ram.client.RAMSession.initAssetTypeCache(RAMSession.java:1823)
at com.ibm.ram.client.RAMSession.getAssetType(RAMSession.java:1680)
at iram.test.iRAMUtils.main(iRAMUtils.java:17)

I am able to browse and search the same RAM repo without any issues using the RAM rich client.

How can I get past this error? I have tried increasing the vmargs settings in the eclipse.ini file, but it did not help.

0 votes

Your answer

Register or log in 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.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details

Question asked: Jun 29 '10, 10:06 a.m.

Question was seen: 7,345 times

Last updated: Jun 29 '10, 10:06 a.m.

Confirmation Cancel Confirm