{"id":4574,"date":"2015-04-23T17:05:30","date_gmt":"2015-04-23T09:05:30","guid":{"rendered":"http:\/\/rmohan.com\/?p=4574"},"modified":"2015-04-23T17:05:30","modified_gmt":"2015-04-23T09:05:30","slug":"t3-protocol","status":"publish","type":"post","link":"https:\/\/mohan.sg\/?p=4574","title":{"rendered":"T3 Protocol"},"content":{"rendered":"<p>Handling weblogic T3 protocol message size issues<\/p>\n<p>Do not be surprised when you see an error like below in weblogic server logs.<\/p>\n<p><strong>Incoming message of size: &#8216;10000080&#8217; bytes exceeds the configured maximum of: &#8216;10000000&#8217; bytes for protocol: &#8216;t3<\/strong><\/p>\n<p>In nutshell, above error happens when weblogic server is trying to process a message of size more than 10MB.<\/p>\n<p>Most of the times it is JMS message processing of course, it\u00a0 need not be always JMS.<\/p>\n<p>First lets understand what is T3 and how it works.<\/p>\n<p>T3 is a\u00a0proprietary communication protocol being\u00a0used by WLS to handle data traffic between java to java applications or JVM to JVM<\/p>\n<p>WLS has a mechanism to keep track of JVMs with which it is connected and always creates just one connection to the connected JVM.<\/p>\n<p>These connected JVMs could be server JVM to server JVM or client JVM to server JVM.<\/p>\n<p>For example, if a Java client accesses JSP page\u00a0 and a JDBC connection pool on WebLogic Server, a single network connection is established between the WebLogic Server JVM and the client JVM.\u00a0This eliminates the need of creating multiple connections and managing them.T3 protocol also does multiplexing data\u00a0packets invisibly\u00a0on the single connection<\/p>\n<p>Features of T3 protocol<\/p>\n<ul>\n<li>High performance for various above said reasons<\/li>\n<li>Multiplexes various data sources data packets into single connection<\/li>\n<li>Minimizes the packet size<\/li>\n<\/ul>\n<p>By default T3 protocol is configured to handle messages of size 10 MB, if server receives messages more than 10 MB size then it can not handle.<\/p>\n<p>As per my knowledge there are three options to handles this.<\/p>\n<p><strong>Option#1(Preferable)<\/strong><\/p>\n<p>Try to analyze why server is receiving that huge payload, who is sending it.In general it is not advisable to handle huge messages unless really really required.<\/p>\n<p>10 MB set by WLS is reasonable value and most appropriate for many environments.<\/p>\n<p>so solution is try to reduce the payload size.<\/p>\n<p>Before sending\u00a0 huge message I suggest transform it to condensed form.<\/p>\n<p>XML is verbose.So lets be very careful about it.<\/p>\n<p><strong>Solution to reduce paylaod size:<\/strong><\/p>\n<p>Transform from source element to target element only if source element has data in it.This has to be done for each element.This will reduce the size.<\/p>\n<p><strong>Option#2(Chunked messages)<\/strong><\/p>\n<p>There are some ways\u00a0to send big messages in small pieces.For example in http, we can use chunked mode transfer and OSB also supports transferring messages in chunked mode.<\/p>\n<p><strong>Option#3(Increasing message size)<\/strong><\/p>\n<p>If option#1 and 2\u00a0does not help you then you can try out this.<\/p>\n<ol>\n<li>Go to servers&#8212;&gt;protocols&#8212;&gt;general&#8212;&gt;max message size&#8212;&gt;change it to required\u00a0value (Do\u00a0it\u00a0for both the admin and the soa servers)<\/li>\n<\/ol>\n<ol start=\"2\">\n<li>Go to servers&#8212;&gt;configuration&#8212;&gt;server start&#8212;&gt;arguments&#8212;&gt;-Dweblogic.MaxMessageSize = same value given in previous step<\/li>\n<\/ol>\n<p>bounce the servers.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Handling weblogic T3 protocol message size issues<\/p>\n<p>Do not be surprised when you see an error like below in weblogic server logs.<\/p>\n<p>Incoming message of size: &#8216;10000080&#8217; bytes exceeds the configured maximum of: &#8216;10000000&#8217; bytes for protocol: &#8216;t3<\/p>\n<p>In nutshell, above error happens when weblogic server is trying to process a message of size more [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[56],"tags":[],"_links":{"self":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/4574"}],"collection":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=4574"}],"version-history":[{"count":1,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/4574\/revisions"}],"predecessor-version":[{"id":4575,"href":"https:\/\/mohan.sg\/index.php?rest_route=\/wp\/v2\/posts\/4574\/revisions\/4575"}],"wp:attachment":[{"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=4574"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=4574"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mohan.sg\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=4574"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}