Skip to Main Content

Java EE (Java Enterprise Edition) General Discussion

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Interested in getting your voice heard by members of the Developer Marketing team at Oracle? Check out this post for AppDev or this post for AI focus group information.

ByteMessage readUTF get truncated message

qjvictorOct 1 2012 — edited Oct 2 2012
When trying to call ByteMessage.readUTF() to convert the byteMessage to String text, in most cases, it works perfect.
But we found if the message is bigger (for example, 500K), ByteMessage.readUTF() will truncate the message into bad format.

For example, in my test case, I expect a byteMessage with XML content, however, it gives me a malformed xml:
first line: <xml version="1.0" encoding="utf-8"?>
becomes" xml version="1.0" encoding="utf-8"?>, without the starting '<'
and the xml is truncated - the filesize seems to be limited as 16k.

this problem happens for MQ and Weblogic JMS, so I believe it is not 3rd party library or service provider specific, seems it is from JDK.

btw, I am using JDK 1.6+.

any idea how this could happen? any solution for this?

Edited by: qjvictor on Oct 1, 2012 1:12 PM

Edited by: qjvictor on Oct 1, 2012 1:12 PM
This post has been answered by jtahlborn on Oct 1 2012
Jump to Answer

Comments

unknown-7404
Those are 'properties' and would be set on the command-line but you can set them in code before you begin referencing JDBC.

They are generally only (and then only rarely) used in an application server context.

See the Application Server Performance Guide

>
6.3.7 Setting the OC4J JDBC DMS Statement Metrics Option
To improve performance, by default OC4J does not collect JDBC statement metrics. The properties, oracle.jdbc.DMSStatementCachingMetrics and oracle.jdbc.DMSStatementMetrics are by default, set to false. When these properties are false, performance is improved since OC4J does not collect expensive JDBC statement level metrics.

Setting these properties to true may have a negative impact on performance. You should only set these properties to true when you need to collect JDBC statement metrics.

When oracle.jdbc.DMSStatementCachingMetrics property is set to true and JDBC statement caching is enabled, the JDBC statement metrics are available.

When JDBC statement caching is disabled, make the JDBC statement metrics available by setting the property oracle.jdbc.DMSStatementMetrics to true.
1002441
I set both oracle.jdbc.DMSStatementCachingMetrics and oracle.jdbc.DMSStatementMetrics to true, but still do not see the SQLText value in DMS Spy.

So I want to try another way, "If the 11.1 version of the DMS JAR file is present in the classpath environment variable, then JDBC checks the DMS update SQL text flag. If this flag is true, then the SQLText metric is updated." The problem is it does not mention what's the name of this "DMS update SQL text flag", or how to set it.
unknown-7404
This question has NOTHING to do with JDBC. As previously stated DMS is used ONLY within an application server context.

You should mark this question ANSWERED and repost it in the Fusion Middleware forum.
3377

DMS is used in Oracle Application Server and WebLogic Server. You shouldn't be using it except in those environments.
1 - 3
Locked Post
New comments cannot be posted to this locked post.

Post Details

Locked on Oct 30 2012
Added on Oct 1 2012
10 comments
5,394 views