Recently I started working with weblogic and see references to t3 in urls that appear in logs. What is this t3 protocol?
2 Answers
Weblogic's implementation of the RMI specification uses a proprietary protocol known as T3. You can think of T3 (and secure T3S) as a layer to expose/allow JNDI calls by clients.
T3 is the protocol used to transport information between WebLogic servers and other types of Java programs. WebLogic keeps track of every Java virtual machine connected to the application. To carry traffic to the Java virtual machine, WebLogic creates a single T3 connection. This type of connection maximizes efficiency by eliminating multiple protocols used to communicate between networks, thereby using fewer operating system resources. The protocol used for the T3 connection also enhances efficiency and minimizes packet sizes, increasing the speed of the delivery method.
Read more: https://docs.oracle.com/cd/E24329_01/web.1211/e24389/rmi_t3.htm#WLRMI143
You can check out some sample client creation code that uses T3 here: http://docs.oracle.com/cd/E11035_01/wls100/client/t3.html

- 6,197
- 3
- 34
- 46
-
1you wrote "WebLogic keeps track of every Java virtual machine connected to the application". Which/What *application* are we talking about ? Weblogic itself?? – Geek Jul 10 '13 at 04:37
-
3Could be managed servers talking to each other or the admin server. All the traffic between servers is T3 as well as clients connecting to one of the servers. – Display Name is missing Jul 10 '13 at 14:38
-
2you wrote "You can think of T3 (and secure T3S) as a layer sitting on top of http ". I don't think this is correct. T3 looks like it is implemented over TCP but does not follow HTTP in any way. – SivaDotRender Nov 25 '15 at 17:56
-
@SivaDotRender, could you provide quotes from documentation that T3 implemented over TCP and does not follow HTTP? – Ivan Gerasimenko Nov 30 '16 at 09:27
-
4T3 does not sit on top of HTTP. it uses the HTTP ports 80/443, and fakes https headers to fool firewalls, but doesn't obey RFC 2616. Source: I wrote t3 – rbp Apr 25 '18 at 16:34
Normally the T3 protocol is used to interact with the WebLogic console.
According to Oracle's documentation:
RMI communications in WebLogic Server use the T3 protocol to transport data between WebLogic Server and other Java programs, including clients and other WebLogic Server instances. A server instance keeps track of each Java Virtual Machine (JVM) with which it connects, and creates a single T3 connection to carry all traffic for a JVM. See "Configure T3 protocol" in Oracle WebLogic Server Administration Console Help.
For example, if a Java client accesses an enterprise bean and a JDBC connection pool on WebLogic Server, a single network connection is established between the WebLogic Server JVM and the client JVM. The EJB and JDBC services can be written as if they had sole use of a dedicated network connection because the T3 protocol invisibly multiplexes packets on the single connection.
– Source: Using WebLogic RMI with T3 Protocol
-
Your statement - "Normally the T3 protocol is used to interact with the WebLogic console.", is not correct as per documentation. T3 is used to "transport data between WebLogic Server and other Java program". WLS console is accessible via http[s] and not via t3. – lupchiazoem Jan 11 '19 at 14:28