2005/09/13

[Troubleshooing] BEA-101083

exception message
####<2005/9/12 下午07時52分46秒 GMT+08:00> <Error> <HTTP> <rx2620e1> <uat01>
<ExecuteThread: '1' for queue: 'weblogic.socket.Muxer'> <<WLS Kernel>> <> <BEA-101083> <Connection failure.

java.lang.Throwable: Error in poll for fd=328, revents=8

at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:128)

at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)

>

reference link

DESCRIPTION:
Enhancement Request.
Running WLS 8.1 SP2 on HPUX11i.

Customer has requested an enhancement.
The customer wants to suppress (not print) the following error:

<May 25, 2004 10:05:11 PM GMT> <Error> <HTTP> <BEA-101083>

<Connection failure.java.net.SocketException: Error in poll for fd=81, revents=8

at weblogic.socket.PosixSocketMuxer.processSockets(PosixSocketMuxer.java:128)

at weblogic.socket.SocketReaderRequest.execute(SocketReaderRequest.java:32)

at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)

at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)

This message unnecessarily fills up their log.

This exception can be thrown if their client / browser initiated multiple requests (sockets were opened) and the client connections were closed before WLS could process the requests (and could not write to the stream any more).

This is a harmless message (unnecessary message).

2005/09/07

[troubleshooting] [EJB:010207]License validation not passed for 2.0

exception msg
Module Name: QueueTransportEJB, Error: Exception preparing module: EJBModule(QueueTransportEJB,status=NEW)
Unable to deploy EJB: /bea/weblogic81/server/lib/QueueTransportEJB.jar from QueueTransportEJB.jar:
java.lang.Exception: [EJB:010207]License validation not passed for 2.0.'


因為客戶的版本是express的版本(不含EJB Container),但是其在create domain的時候,使用sample此template(有EJB的code),改採server此temaplte來create即可

[How-To] memory allocation for WLS

關於memory allocation,你要加在此行(位於script file的下半部):
%JAVA_HOME%\bin\java %JAVA_VM% %MEM_ARGS% %JAVA_OPTIONS% -ms512m -mx512m -Dweblogic.Name=%SERVER_NAME% -Dweblogic.ProductionModeEnabled=%PRODUCTION_MODE% -Djava.security.policy="%WL_HOME%\server\lib\weblogic.policy" weblogic.Server

512的地方可以replace成你想要的memory的量

[How-To] Capacity Estination

http://www.spec.org/

http://e-docs.bea.com/wls/docs81/capplan/capbase.html#1055436

[info] Linux Tuning Parameters Tuning

http://e-docs.bea.com/wls/docs81/perform/HWTuning.html#1121228

Java2005專業技術大會 Slide

http://www.javatwo.net/Event/j2/2005/download/index.html

[troubleshooting] admin console密碼更改的問題

關於admin console的帳號密碼更改的問題,在admin console所變更的密碼,其不會同步更新到boot.properties這個file,所以,如果有變更密碼,就需要重新編輯此檔案(boot.properties)。

[troubleshooting] how to retrieve client's IP if WLS had plugin apache

For non-clustered servers that will receive proxied requests, this attribute may be set at the server level, on the Server -->Configuration-->General tab-->Advanced Options
把server instance的這個值enable起來,然後server要restart

reference: domain_cluster_config_general.html

[troubleshooting] Connection has already been created in this tx context for pool

scenario:
database:mysql
They had two mysql database connections. The first one is used to read data, and the second one is used to write data into another database. And they also check "Emulate Two-Phase Commit for non-XA driver" this option, but it still does not work.

Exception in context_onAcquire
java.sql.SQLException: Connection has already been created in this tx context for pool named dbsvr1_mysql. Illegal attempt to create connection from another pool: wssvr1_wsclub


According to the exception message, it means you can't use more than one non-XA connection pool in distributed transaction.
If you want to implement one user control calling two DB controls, you will have one transaction using two connections at the same time.
Only an XA transaction with 2PC support can do the job. You need to use XA driver.

I searched for the doc MYSQL, and find MYSQL 5.1 will support XA. But unfortunately, now the latest version of MYSQL is 5.0.
I think there's no good method on weblogic side which can handle the two connection pools with two non-xa drivers condition.

http://e-docs.bea.com/wls/docs81/faq/JTA.html#738373

2005/08/25

[troubleshooting] Resolve Too Many Open Files

Resolve Too Many Open Files

Troubleshooting Guidance Support Diagnostic Patterns

之前一直發現rlim_fd_max這個值始終都是預設的1024這個值,並不是user設定後的值,原來是在啟動的時候,他會去跑commEvn.sh裡頭的resetFd()這個function,裡頭會把值還原成1024,把它comment掉就好了。

[troubleshooting] WLS 8.1 亂碼解決方法

http://www.ddvip.net/program/java/index6/281.htm

in web.xml add:
<context-param>
<param-name>weblogic.httpd.inputCharset./*</param-name>
<param-value>BIG5</param-value>
</context-param>


in weblogic.xml add:
<jsp-descriptor>
<jsp-param>
<param-name>compileCommand</param-name>
<param-value>javac</param-value>
</jsp-param>
<jsp-param>
<param-name>compilerSupportsEncoding</param-name>
<param-value>true</param-value>
</jsp-param>
<jsp-param>
<param-name>encoding</param-name>
<param-value>BIG5</param-value>
</jsp-param>
</jsp-descriptor>

2005/08/15

Smartly load your properties

Link

Example
Assume I have a property file which named config, and this file locate at src/albert.
This file contains two values:
name=albert
email=junyuo@gmail.com

Then you can utilize this approach to read this property file

InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("albert/config.properties");
PropertyResourceBundle rb = new PropertyResourceBundle(is);
System.out.println("name="+rb.getString("name"));
System.out.println("email="+rb.getString("email"));