SQL "Execution timeout expired." Exception Thrown By Jobs Run With WCI 10.3.x Automation Server

View Comments

일단 등록해 놓자!

Applies to:

Oracle WebCenter Interaction - Version: 10.3.0.0 and later   [Release: and later ]
Information in this document applies to any platform.
Edited for currency on 1/23/12.

Symptoms

Jobs that run queries against the DB where the result takes longer than 30s to return fail with exceptions similar to the following in both the joblog and Automation logging spy:
Mar 23, 2010 12:45:15 PM- JobShell: Exception occurred when processing operation operation 0:22: Error in function PTScheduler.DeleteJobHistory (olderThen == March 16, 2010 12:44:40 PM PDT): Exception: [plumtree][SQLServer JDBC Driver]Execution timeout expired. SQL: '/* DELETE_FROM_JOB_LOGS:ANSI */ DELETE FROM PTJOBLOGS WHERE INSTANCEID < (SELECT MAX(INSTANCEID) FROM PTJOBHISTORY WHERE RUNTIME <=?)'

Changes

This problem can occur in all 10.3.0.x environments, including those patched to 10.3.0.1, as well as in 10.3.3. In all cases, apply the solution provided in this article.

Cause

This behavior is documented in Bug 9691347.

A ptspy log of the Automation Server during a job has debug entries similar to the following:
Retrieving subscriptions for Context automationserver. <ptLogMsgEnd>
Unable to retrieve DatabaseCommandTimeout from configuration settings, using default value: 30 <ptLogMsgEnd>

Whereas a Portal startup on the same environment has entries similar to the following:
Retrieving subscriptions for Context portal.
Retrieved setting DatabaseCommandTimeout from component portal:SystemProperties.
Setting DatabaseCommandTimeout read as 60 (integer)

This indicates that the Automation Server context is unable to read the settings in the 'portal:SystemProperties' section of the automation server configuration.xml file and a default value of 30s is used instead. Though the 10.3.0.1 patch resolves the issue created by Bug:9691347 it does so by utilizing a new attribute, 'DatabaseCommandTimeout', in the 'portal:SystemProperties' section of the configuration.xml which is included only on machines that host a Portal or Admin Portal and not standalone Automation Server hosts. Furthermore, even if your Portal and Automation services are hosted on the same machine it is possible that your environment is not configured to have Automation take advantage of the new feature.

Solution

The solution is to include the 'portal:SystemProperties' section in the Automation Server configuration.xml file and configure the Automation Server to utilize the 'DatabaseCommandTimeout' attribute. Accomplish this with the following steps:

1. Edit configuration.xml on machine hosting Automation Server.
2. Navigate to the 'client' area of "portal:SystemProperties" section. If this section does not exist, add the following:
<component name="portal:SystemProperties" type="http://www.plumtree.com/config/component/types/portal/systemproperties">
<setting name="ServerName">
<value xsi:type="xsd:string">localhost</value>
</setting>
<setting name="MachineName">
<value xsi:type="xsd:string">localhost</value>
</setting>
<setting name="PerformanceComments">
<value xsi:type="xsd:integer">1</value>
</setting>
<setting name="DebuggingMode">
<value xsi:type="xsd:integer">0</value>
</setting>
<setting name="DoctypeSpecification">
<value xsi:type="xsd:integer">1</value>
</setting>
<setting name="LayoutMode">
<value xsi:type="xsd:integer">1</value>
</setting>
<setting name="VirtualDirectoryPath">
<value xsi:type="xsd:string">/portal/</value>
</setting>
<setting name="HTTPEntryPoint">
<value xsi:type="xsd:string">server.pt</value>
</setting>
<setting name="HTTPPort">
<value xsi:type="xsd:integer">80</value>
</setting>
<setting name="HTTPSecurePort">
<value xsi:type="xsd:integer">443</value>
</setting>
<setting name="SSOVirtualDirectoryPath">
<value xsi:type="xsd:string">/portal/</value>
</setting>
<setting name="SSOServletName">
<value xsi:type="xsd:string">sso/SSOLogin.aspx</value>
</setting>
<setting name="DatabaseCommandTimeout">
<value xsi:type="xsd:integer">1200</value>
</setting>
<clients>
<client name="automationserver"/>
</component>

3. Specify the desired 'DatabaseCommandTimeout' value.
4. Modify the 'clients' entries to include the Automation Server context:

Before:
<clients>
<client name="portal"/>
</clients>

After:
<clients>
<client name="portal"/>
<client name="automationserver"/>
</clients>

5. Restart automation service.
6. During restart, confirm with Logging Spy that the Automation Server reads and loads the 'DatabaseCommandTimeout' value.
7. Repeat on any machine hosting an automation server instance.

Please note that the solution presented in this article applies ONLY to environments patched to 10.3.0.1 or higher. Older versions are not coded to utilize the 'DatabaseCommandTimeout' attribute.

References

NOTE:1163858.1 - WebCenter Interaction Master Note
Bug 9691347
Bug 8339671
Bug 7822162


Comments (+add yours?)

Tracbacks (+view to the desc.)

Job이 실패후 Operation supporting pulse is unresponsive 에러를 낼때

View Comments

한번 문제 생긴건 정리를 해놔야 다시 안까먹을듯 ??

H화재에서 발생된 사례이다

Search Update 1 과  house keeping job  이 돌면서

" Operation supporting pulse is unresponsive" 라는 에러를 내밷으며 실패가 될때가 있다

이 에러는 작업 업데이트를 기다리는 동안  타임 아웃이 되었음을 의미 한다.


해결방법

settings/configration.xml 을 열고 

'max-pulse-timeout' 항목을 찾는다 해당 수치의 기본 1800이다 적정 시간을 늘려준다


 <setting name="automation-server:max-pulse-timeout">

        <value xsi:type="xsd:integer">1800</value>

 </setting>


난 그냥 두배 늘렸다 --;

Automation Server를 재기동 하고 확인해 보자

잘돌아가나?







Comments (+add yours?)

Tracbacks (+view to the desc.)

CustomSSO개발시 session 개체 사용법

View Comments

WCI프로젝트중 SSO방식이 쿠키방식과 session방식을 혼용 및 session방식만 사용하는 sso가 있다.

포탈에서도 WCI portalconfig.xml중 

<component name="portal:SSOVendor" type="http://www.plumtree.com/config/component/types/portal/ssovendor">

        <!-- The following are just sample settings -->

        <setting name="HeaderType">

            <value xsi:type="xsd:string">COOKIE</value>

        </setting>


이 값을 COOKIE로 사용한다고 쿠키를 생성하는 경우가 다반사다

HeaderType 이 COOKIE라서 WCI내부에서 사용하는 부분을 COOKIE로 처리하는 것이지

인증을 위하여 COOKIE를 사용하라는 이야기가 아니다, 우리가 잘못 오해하는 부분이다.


session방식인데 로그인후 포탈로그인 아이디를 얻기위해 쿠키를 구어

CustomSSO에서 XPCookie를 이용하여 아이디를 가져오는 방식은 잘못된 방식 이다.


그럼 어찌 바꿀까?

개체중 IXPSession개체가 있다 


public SSOLoginInfo GetLoginInfo(IXPRequest request) {

IXPSession session=request.GetSession();

ssoid=(String)session.GetAttribute("ID"); <--SSO에서 지정한 사용자 ID

      .

.

.

 if(ssoid!= null)

     return new SSOLoginInfo("PrefixHeader", ssoid, sPassword);

 else

  return null;


끝. ㅋㅋㅋ







Comments (+add yours?)

Tracbacks (+view to the desc.)

Webcenter Interaction 설치 중 arg list too long 오류시 해결 방법

View Comments

1. ROOT 로 로그인

2. lsattr -E -l sys0 -a ncargs

   명령어로 ncargs 확인 후

3. chdev -l sys0 -a ncargs=256

   명령어로 ncargs 값은 높여줌

Comments (+add yours?)

Tracbacks (+view to the desc.)

구버전(ALUI)에서 database connection pool 설정 방법

View Comments

현재 WCI는 Configuration Manager가 있어서 수려한(?) UI에서 설정이 가능하지만, 구 버전(ALUI)에서는 xml 파일에 직접 세팅해줘야 한다.

방법은 

ALUI설치 디렉토리/settings/common/serverconfig.xml 파일의 

 



...


윗 component name="opendb:DBConnection" 사이에 다음을 추가하면 된다.


   10


   50


    10

Comments (+add yours?)

Tracbacks (+view to the desc.)

Newer Entries Older Entries