반응형

JBoss EAP 6 쓰레드 설정

 

default Thread Pool

기본 쓰레드는 CPU 코어당 512개로

최대 쓰레드 개수와 최대 동시 접속자수가 동시에 설정된다.

 

▶ 설정방법

standalone.xml/domain.xml에 web subsystem의 connector에 설정한다.

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" native="true">

<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp" max-connections="2048"/>

...

</subsystem>

 

 

bounded-queue-thread-pool Thread Pool

bounded-queue-thread-pool은 max-threads로 최대 쓰레드 개수와 최대 동시 접속자수가 동시에 설정된다.

그리고 모든 쓰레드를 사용중일 경우 queue-length에 지정한 만큼 사용자의 요청을 받아들여 대기열에 저장한 후

처리가 끝난 쓰레드가 생기면 대기열의 요청을 순차적으로 처리한다.

 

▶ 설정방법

standalone.xml/domain.xml에 threads subsystem에 executor를 생성한 후

web subsystem의 connector에 threads subsystem에 생성한 executor를 지정한다.

<subsystem xmlns="urn:jboss:domain:threads:1.1">

<bounded-queue-thread-pool name="ajp-thread-pool">

<core-threads count="50"/>
<max-threads count="100"/>
<queue-length count="30"/>

</bounded-queue-thread-pool>

</subsystem>

 

<subsystem xmlns="urn:jboss:domain:web:2.2" ...> 

<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp" executor="ajp-thread-pool"/>

...

</subsystem>

 

 

bounded-queue-thread-pool을 사용할 때

keepalive-time 을 설정하면 idle 쓰레드 개수가 core-threads만큼 줄어든다.

반응형
반응형

JBoss EAP 7 쓰레드 설정

 

● io subsystem/worker/io-thread

- Kernel에 유입된 요청(소켓)을 Accept하는 non blocking thread

- 기본값 : core * 2

 io subsystem/worker/task-max-thread

- io-thread가 가져온 task를 처리하는 blocking thread

- WAS의 동시처리 thread

- 기본값 : core * 16

 

● undertow subsystem/max-connections

- 최대 동시접속 사용자 설정

- 기본값:  OS가 허용하는 범위 내에서 사용자 요청을 받아들임

- max-connections + @(queue)

- 값을 설정할 경우 정확한 수치로 적용되지 않음(queue 값을 확인하지 못함)

 

● undertow subsystem/filter/request-limit/max-concurrent-reqeusts

- 최대 동시접속 사용자 설정

- 기본값은 없으며 해당 필터를 사용할 경우 값을 지정해야 함

- 값을 설정하면 정확한 수치로 적용됨

● undertow subsystem/filter/request-limit/queue-size

- queue 사이즈

- max-concurrent-requests에 적용한 수치보다 많은 사용자가 접속할 경우 queue-size에 지정한 만큼

  요청을 queue에 담았다가 앞에 요청이 처리되어 자리가 생기면 순차적으로 처리됨

 

 

▶ 설정방법

1. worker thread 설정

standalone.xml/domain.xml에 io subsystem에서 설정

undertow subsystem에 io subsystem에 생성한 worker를 지정한다.

- <worker name="ajp-worker" task-max-threads="150"/>
- <ajp-listener name="ajp" socket-binding="ajp" worker="ajp-worker"/>

 

2. 최대 동시접속 사용자 설정

undertow subsystem의 max-connections는 적용한 수치가 정확하게 적용되지 않아

request-limit filter를 사용하여 최대 동시접속 사용자 설정을 지정한다. 

- <filter-ref name="connection-limit"/>

- <request-limit name="connection-limit" max-concurrent-requests="1000" queue-size="50"/>

 

<subsystem xmlns="urn:jboss:domain:io:1.1">
  <worker name="default"/>
  <worker name="ajp-worker" task-max-threads="150"/>
 <buffer-pool name="default"/>
</subsystem>

 

<subsystem xmlns="urn:jboss:domain:undertow:3.1" instance-id="${jboss.server.name}">
...
  <ajp-listener name="ajp" socket-binding="ajp" worker="ajp-worker"/>
...
  <host name="default-host" alias="localhost">
   <location name="/" handler="welcome-content"/>
   <filter-ref name="server-header"/>
   <filter-ref name="x-powered-by-header"/>
   <filter-ref name="connection-limit"/>
  </host>
 </server>
...
 <filters>
  <response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
  <response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
  <request-limit name="connection-limit" max-concurrent-requests="1000" queue-size="200"/>
 </filters>
</subsystem>

 

위 설정은 동시에 150개의 요청을 처리하며 동시에 최대 1200개의 요청을 받아들임

 

3. 재기동

반응형
반응형

How to detect leaked datasource connections using the cached connection manager (CCM) debug facility in JBoss EAP

 

https://access.redhat.com/solutions/309913

반응형

' > WAS' 카테고리의 다른 글

JBoss EAP 6 쓰레드 설정  (0) 2022.06.30
JBoss EAP 7 쓰레드 설정  (0) 2022.06.30
JBoss EAP 6 Native 설정  (0) 2022.06.30
JBoss EAP 6 Native 설정  (0) 2022.06.30
JBoss EAP 6/7 - vault : 패스워드 암호화  (0) 2022.06.30
반응형

JBoss EAP 6 Native 설정

 

JBoss 또는 Tomcat에 Native 모듈을 설정할 경우 사용자의 요청을 받아들이는 OS의 Native 영역에 Non blocking 방식으로 접근이 가능해진다.

그래서 처리량이 증가하여 성능 향상이 되거나 Thread의 Wait 현상이 완화된다.

추가로 JBoss EAP 7은 XNIO를 사용하므로 추가 설정 없이 사용가능하다

 

1. Native 모듈 다운로드 - JBoss가 설치된 OS 환경에 맞는 모듈 다운로드

- http://access.redhat.com (다운받기 위해서는 서브스크립션 필요)

 

 

2. Native 모듈 설치(리눅스 예제)

2.1. 모듈 복사

모듈을 압축 해제하고 제이보스 엔진의 modules 이하 동일한 경로에 해당 디렉터리와 모듈 복사 

modules/system/layers/base/org/hornetq/main/lib/linux-x86_64

modules/system/layers/base/org/jboss/as/web/main/lib/linux-x86_64

 

] cp -r modules/system/layers/base/org/hornetq/main/lib/linux-x86_64 $JBOSS_HOME/modules/system/layers/base/org/hornetq/main/lib

] cp -r modules/system/layers/base/org/jboss/as/web/main/lib/linux-x86_64 $JBOSS_HOME/modules/system/layers/base/org/jboss/as/web/main/lib

 

2.2. module.xml 수정

추가한 Native 모듈을 사용할 수 있도록 module.xml의 resource-root에 모듈 경로 지정

 

] vi $JBOSS_HOME/modules/system/layers/base/org/hornetq/main/module.xml

] vi $JBOSS_HOME/modules/system/layers/base/org/jboss/as/web/main/module.xml

 

<resources>

<resource-root path="lib/linux-x86_64"/>

</resources>

 

 

3. standalone/domain.xml 수정 - web subsystem에 native 사용 활성화

JBoss EAP 6에서는 기본으로 Native 모듈을 사용안함으로 설정되어 있음

 

] vi ${jboss.server.base.dir}/configuration/stanalone.xml or ${jboss.domain.base.dir}/configuration/domain.xml

 

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtualserver="default-host" native="true">

 

 

4. 재기동

반응형
반응형

JBoss EAP 6 Native 설정

 

JBoss 또는 Tomcat에 Native 모듈을 설정할 경우 사용자의 요청을 받아들이는 OS의 Native 영역에 Non blocking 방식으로 접근이 가능해진다.

그래서 처리량이 증가하여 성능 향상이 되거나 Thread의 Wait 현상이 완화된다.

추가로 JBoss EAP 7은 XNIO를 사용하므로 추가 설정 없이 사용가능하다

 

1. Native 모듈 다운로드 - JBoss가 설치된 OS 환경에 맞는 모듈 다운로드

- http://access.redhat.com (다운받기 위해서는 서브스크립션 필요)

 

 

2. Native 모듈 설치(리눅스 예제)

2.1. 모듈 복사

모듈을 압축 해제하고 제이보스 엔진의 modules 이하 동일한 경로에 해당 디렉터리와 모듈 복사 

modules/system/layers/base/org/hornetq/main/lib/linux-x86_64

modules/system/layers/base/org/jboss/as/web/main/lib/linux-x86_64

 

] cp -r modules/system/layers/base/org/hornetq/main/lib/linux-x86_64 $JBOSS_HOME/modules/system/layers/base/org/hornetq/main/lib

] cp -r modules/system/layers/base/org/jboss/as/web/main/lib/linux-x86_64 $JBOSS_HOME/modules/system/layers/base/org/jboss/as/web/main/lib

 

2.2. module.xml 수정

추가한 Native 모듈을 사용할 수 있도록 module.xml의 resource-root에 모듈 경로 지정

 

] vi $JBOSS_HOME/modules/system/layers/base/org/hornetq/main/module.xml

] vi $JBOSS_HOME/modules/system/layers/base/org/jboss/as/web/main/module.xml

 

<resources>

<resource-root path="lib/linux-x86_64"/>

</resources>

 

 

3. standalone/domain.xml 수정 - web subsystem에 native 사용 활성화

JBoss EAP 6에서는 기본으로 Native 모듈을 사용안함으로 설정되어 있음

 

] vi ${jboss.server.base.dir}/configuration/stanalone.xml or ${jboss.domain.base.dir}/configuration/domain.xml

 

<subsystem xmlns="urn:jboss:domain:web:1.1" default-virtualserver="default-host" native="true">

 

 

4. 재기동

반응형
반응형

1. keystore/vault 파일을 저장할 디렉터리 생성

web1]$ mkdir -p $JBOSS_HOME/vault

 

 

2. keystore.sh 실행하여 keystore 생성

- 스크립트1. keysotre.sh 확인(맨아래)

web1]$ ./keystore.sh [aliasname] [storepass] [keypass] [validity(in day)]

 

 

3. vault.sh 실행하여 vault 생성

- 스크립트2. vault.sh 확인(맨아래)

web1]$ ./vault.sh [aliasname] [sotrepass] [password]

 

 

4. 출력된 결과를 standalone.xml / host-slave.xml / domain.xml에 등록

Please make note of the following:
********************************************
Vault Block:vb
Attribute Name:password
Configuration should be done as follows:
VAULT::vb::password::1
********************************************
WFLYSEC0048: Vault Configuration in WildFly configuration file:
********************************************
...
</extensions>
<vault>
  <vault-option name="KEYSTORE_URL" value="$JBOSS_HOME/vault/vault.keystore"/>
  <vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
  <vault-option name="KEYSTORE_ALIAS" value="vault"/>
  <vault-option name="SALT" value="1234abcd"/>
  <vault-option name="ITERATION_COUNT" value="120"/>
  <vault-option name="ENC_FILE_DIR" value="$JBOSS_HOME/vault/"/>
</vault>
<management>
...
********************************************

 

4.1. standalone 모드

web1]$ vi standalone.xml

...
</extensions>
<vault>

<vault-option name="KEYSTORE_URL" value="$JBOSS_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="$JBOSS_HOME/vault/"/>

</vault>
<management>
...

 

<datasource pool-name="OracleDS" ...>

<security>

<user-name>jboss</user-name>
<password>${VAULT::vb::password::1}</password>

</security>

</datasource>

 

4.2. domain 모드

web1]$ vi host-slave.xml

...
</extensions>
<vault>

<vault-option name="KEYSTORE_URL" value="$JBOSS_HOME/vault/vault.keystore"/>
<vault-option name="KEYSTORE_PASSWORD" value="MASK-5dOaAVafCSd"/>
<vault-option name="KEYSTORE_ALIAS" value="vault"/>
<vault-option name="SALT" value="1234abcd"/>
<vault-option name="ITERATION_COUNT" value="120"/>
<vault-option name="ENC_FILE_DIR" value="$JBOSS_HOME/vault/"/>

</vault>
<management>
...

 

web1]$ vi domain.xml

<datasource pool-name="OracleDS" ...>

<security>

<user-name>jboss</user-name>
<password>${VAULT::vb::password::1}</password>

</security>

</datasource>

 

 

5. 재기동

 

 

# 스크립트1. keystore.sh

#!/bin/sh

. ./env.sh

 

if[ \( -n "$1" \) -a \( -n "$2" \) -a \( -n "$3" \) -a \( -n "$4" \) ]
then

$JAVA_HOME/bin/keytool -genseckey -alias $1 -storetype jceks -keyalg AES -keysize 128 -storepass $2 -keypass $3 -validity $4 -keystore $JBOSS_HOME/vault/vault.keystore
echo "Check: $JBOSS_HOME/vault/vault.keystore"
exit;

fi

echo "./keystore.sh [aliasname] [storepass] [keypass] [validity(in day)]"

exit;

 

# 스크립트2. vault.sh

#!/bin/sh

. ./env.sh

 

if[ \( -n "$1" \) -a \( -n "$2" \) -a \( -n "$3" \) ]
then

$JBOSS_HOME/bin/vault.sh --keystore $JBOSS_HOME/vault/vault.keystore --alias $1 --keystore-password $2 --vault-block vb --attribute password --sec-attr $3 --enc-dir $EAP_HOME/vault/ --iteration 120 --salt 1234abcd

echo "Check: $JBOSS_HOME/vault/VAULT.dat"

exit;

fi

echo "./vault.sh [aliasname] [storepass] [password]"

exit;

 

 

# 참고 URL : https://access.redhat.com/solutions/2790371

반응형

' > WAS' 카테고리의 다른 글

JBoss EAP 6 Native 설정  (0) 2022.06.30
JBoss EAP 6 Native 설정  (0) 2022.06.30
JBoss EAP 6 - StuckThread 감지 설정  (0) 2022.06.30
JBoss EAP 7 - StuckThread 감지 설정  (0) 2022.06.30
SocketException: Error in poll  (0) 2019.11.29
반응형

JBoss EAP 6 - StuckThread 감지 설정

 

제이보스에서 지정한 시간(초)동안 쓰레드가 수행될 경우 로그에 경고 메시지를 발생시키며

해당 쓰레드의 stacktrace를 로그에 기록함

 

설정파일: standalone.xml / domain.xml

설정내용:

<subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" instance-id="${jboss.node.name}" native="true">

<connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/>

<connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp" executor="ajp-thread-pool"/>

<virtual-server name="default-host" enable-welcome-root="false">

<alias name="localhost"/>
<alias name="example.com"/>
<access-log pattern='%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %s %T'>

<directory path="access" relative-to="jboss.server.log.dir"/>

</access-log>

</virtual-server>
<valve name="StuckThreadValve" module="org.jboss.as.web" class-name="org.apache.catalina.valves.StuckThreadDetectionValve">

<param param-name="threshold" param-value="10"/>

</valve>

</subsystem>

 

로그내용:

Stuckthread 발생시

13:52:47,511 WARN  [org.apache.catalina.valves] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]) JBWEB001111: Thread http-192.168.56.102:8180-1 (id=121) has been active for 12548 milliseconds (since Wed Nov 01 13:52:34 KST 2017) to serve the same request for http://192.168.56.102:8180/index.jsp and may be stuck (configured threshold for this StuckThreadDetectionValve is 10 seconds). There is/are 1 thread(s) in total that are monitored by this Valve and may be stuck.: java.lang.Throwable
        at java.lang.Thread.sleep(Native Method) [rt.jar:1.7.0_80]
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:59)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:365) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:246) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.2.Final-redhat-2.jar:1.0.2.Final-redhat-2]
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:231) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.jboss.as.web.session.ClusteredSessionValve.handleRequest(ClusteredSessionValve.java:134) [jboss-as-web-7.5.17.Final-redhat-4.jar:7.5.17.Final-redhat-4]
        at org.jboss.as.web.session.ClusteredSessionValve.invoke(ClusteredSessionValve.java:99) [jboss-as-web-7.5.17.Final-redhat-4.jar:7.5.17.Final-redhat-4]
        at org.jboss.as.web.session.JvmRouteValve.invoke(JvmRouteValve.java:95) [jboss-as-web-7.5.17.Final-redhat-4.jar:7.5.17.Final-redhat-4]
        at org.jboss.as.web.session.LockingValve.invoke(LockingValve.java:64) [jboss-as-web-7.5.17.Final-redhat-4.jar:7.5.17.Final-redhat-4]
        at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.5.17.Final-redhat-4.jar:7.5.17.Final-redhat-4]
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:151) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:559) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:132) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:877) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:611) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:2082) [jbossweb-7.5.24.Final-redhat-1.jar:7.5.24.Final-redhat-1]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_80]

 

Stuckthread 완료시
13:53:07,540 WARN  [org.apache.catalina.valves] (ContainerBackgroundProcessor[StandardEngine[jboss.web]]) JBWEB001112: Thread http-192.168.56.102:8180-1 (id=121) was previously reported to be stuck but has completed. It was active for approximately 30398 milliseconds. There is/are still 0 thread(s) that are monitored by this Valve and may be stuck. 

반응형

' > WAS' 카테고리의 다른 글

JBoss EAP 6 Native 설정  (0) 2022.06.30
JBoss EAP 6/7 - vault : 패스워드 암호화  (0) 2022.06.30
JBoss EAP 7 - StuckThread 감지 설정  (0) 2022.06.30
SocketException: Error in poll  (0) 2019.11.29
<BEA-100094> a server that is not the primary  (0) 2019.11.29
반응형

JBoss EAP 7 - StuckThread 감지 설정

 

제이보스에서 지정한 시간(초)동안 쓰레드가 수행될 경우 로그에 경고 메시지를 발생시키며

해당 쓰레드의 stacktrace를 로그에 기록함

 

설정파일: standalone.xml / domain.xml

설정내용:

<subsystem xmlns="urn:jboss:domain:undertow:3.1" instance-id="${jboss.server.name}" statistics-enabled="true">

<buffer-cache name="default"/>
<server name="default-server">

<ajp-listener name="ajp" socket-binding="ajp" worker="ajp-worker"/>
<http-listener name="default" socket-binding="http" redirect-socket="https" max-parameters="10000"/>

<host name="default-host" alias="localhost">

<location name="/" handler="welcome-content"/>
<access-log prefix="access." directory="${jboss.server.log.dir}/access" pattern="%h %l %u %t %r %s %b %{i,Referer} %{i,User-Agent} %s %T"/>
<filter-ref name="server-header"/>
<filter-ref name="x-powered-by-header"/>
<filter-ref name="stuck" />

</host>

</server>
<servlet-container name="default" default-encoding="UTF-8">

<jsp-config/>
<websockets/>

</servlet-container>
<handlers>

<file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>

</handlers>
<filters>

<response-header name="server-header" header-name="Server" header-value="JBoss-EAP/7"/>
<response-header name="x-powered-by-header" header-name="X-Powered-By" header-value="Undertow/1"/>
<expression-filter name="stuck" expression="blocking; stuck-thread-detector(10)"/>

</filters>

</subsystem>

 

 

로그내용:

Stuckthread 발생시

2017-11-01 14:07:42,156 WARN  [io.undertow.request] (default I/O-3) UT005072: Thread default task-1 (id=143) has been active for 10020 milliseconds (since Wed Nov 01 14:07:32 KST 2017) to serve the same request for /index.jsp and may be stuck (configured threshold for this StuckThreadDetectionValve is 10 seconds). There is/are 1 thread(s) in total that are monitored by this Valve and may be stuck.: java.lang.Throwable
        at java.lang.Thread.sleep(Native Method)
        at org.apache.jsp.index_jsp._jspService(index_jsp.java:96)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:402)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:346)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
        at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
        at io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
        at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
        at io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
        at org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
        at io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
        at io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
        at io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
        at io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
        at io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
        at io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
        at io.undertow.server.handlers.MetricsHandler.handleRequest(MetricsHandler.java:62)
        at io.undertow.servlet.core.MetricsChainHandler.handleRequest(MetricsChainHandler.java:59)
        at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:285)
        at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:264)
        at io.undertow.servlet.handlers.ServletInitialHandler.handleRequest(ServletInitialHandler.java:189)
        at org.wildfly.extension.undertow.deployment.GlobalRequestControllerHandler.handleRequest(GlobalRequestControllerHandler.java:39)
        at io.undertow.server.handlers.HttpContinueReadHandler.handleRequest(HttpContinueReadHandler.java:65)
        at io.undertow.server.handlers.PathHandler.handleRequest(PathHandler.java:94)
        at io.undertow.server.handlers.accesslog.AccessLogHandler.handleRequest(AccessLogHandler.java:138)
        at org.wildfly.extension.undertow.Host$OptionsHandler.handleRequest(Host.java:285)
        at io.undertow.server.handlers.HttpContinueReadHandler.handleRequest(HttpContinueReadHandler.java:65)
        at io.undertow.server.handlers.SetHeaderHandler.handleRequest(SetHeaderHandler.java:90)
        at io.undertow.server.handlers.SetHeaderHandler.handleRequest(SetHeaderHandler.java:90)
        at io.undertow.predicate.PredicatesHandler.handleRequest(PredicatesHandler.java:110)
        at io.undertow.server.handlers.StuckThreadDetectionHandler.handleRequest(StuckThreadDetectionHandler.java:168)
        at io.undertow.predicate.PredicatesHandler.handleRequest(PredicatesHandler.java:93)
        at io.undertow.server.Connectors.executeRootHandler(Connectors.java:324)
        at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:803)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:748)

 

Stuckthread 완료시
2017-11-01 14:08:03,193 WARN  [io.undertow.request] (default I/O-3) UT005073: Thread default task-1 (id=143) was previously reported to be stuck but has completed. It was active for approximately 30523 milliseconds. There is/are still 0 thread(s) that are monitored by this Valve and may be stuck.

반응형

' > WAS' 카테고리의 다른 글

JBoss EAP 6/7 - vault : 패스워드 암호화  (0) 2022.06.30
JBoss EAP 6 - StuckThread 감지 설정  (0) 2022.06.30
SocketException: Error in poll  (0) 2019.11.29
<BEA-100094> a server that is not the primary  (0) 2019.11.29
웹로직 계정변경  (0) 2019.11.29
반응형

export JAVA_OPTS="-server -D$SERVER_NAME $JAVA_OPTS"

 

export JAVA_OPTS="$JAVA_OPTS -Xms512m -Xmx512m"

export JAVA_OPTS="$JAVA_OPTS -XX:NewSize=256m -XX:MaxNewSize=256m"

 

# JAVA 6 7

export JAVA_OPTS="$JAVA_OPTS -XX:PermSize=512m -XX:MaxPErmSize=512m"

 

# JAVA 8

export JAVA_OPTS="$JAVA_OPTS -XX:MetaspaceSize=512m -XX:MaxMetaspaceSize=512m"

 

# IPv6 Disable

export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=true"

export JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv6Addresses=false"

 

# GC ParallelGC

export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelGC"

export JAVA_OPTS="$JAVA_OPTS -XX:+UseParallelOldGC"

export JAVA_OPTS="$JAVA_OPTS -XX:-UseAdaptiveSizePolicy"

export JAVA_OPTS="$JAVA_OPTS -XX:ParallelGCThreads=4"

 

# GC Log

export JAVA_OPTS="$JAVA_OPTS -verbose:gc"

export JAVA_OPTS="$JAVA_OPTS -Xloggc:$LOG_DIR/gc/g.log"

export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDateStamps"

export JAVA_OPTS="$JAVA_OPTS -XX:+PrintGCDetails"

export JAVA_OPTS="$JAVA_OPTS -XX:+UseGCLogFileRotation"

export JAVA_OPTS="$JAVA_OPTS -XX:NumberOfGCLogFiles=10"

export JAVA_OPTS="$JAVA_OPTS -XX:GCLogFileSize=16m"

 

# ETC

export JAVA_OPTS="$JAVA_OPTS -Dsun.rmi.dgc.client.gcInterval=3600000 "

export JAVA_OPTS="$JAVA_OPTS -Dsun.rmi.dgc.server.gcInterval=3600000"

export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"

반응형

' > JAVA' 카테고리의 다른 글

native2ascii  (0) 2019.11.27
Open JDK 설치 Java 설치  (0) 2019.11.27
힙덤프 수동 생성 Heap Dump  (0) 2019.11.27
힙덤프 생성 옵션 heap dump  (0) 2019.11.27
jar 파일 특정 클래스 찾기  (0) 2019.11.27
반응형

$WEB_HOME/admin-server/bin

./startserv

./stopserv

반응형

' > WEB' 카테고리의 다른 글

workers.properties  (0) 2022.06.30
iplanet 설치  (0) 2019.12.01
iplanet 아이플라넷 설치파일  (0) 2019.12.01
JKS to wallet  (0) 2019.12.01
ews(CentOS(WAS1))설치  (0) 2019.12.01

+ Recent posts