Highlighted
Absent Member.
Absent Member.
2740 views

JsessionIDForms for Oracle Application R12.2.5 not replaced when replay script in LR

Jump to solution

Hi There,

I'm testing LoadRunner for Oracle Application R12.2.5 load testing and keep running into below error and I found JsessionIDForms is not replaced in the first occurance according to replace log but can't find any clue.

Action.c(205): Error: nca_connect_server: cannot communicate with host ovs.monash.net on port 8090


1.This is part of RecordingLog.txt and found JsessionIDForms is fist occured after /forms/frmservlet call


[Web Request (2994:2f60)] "GET /OA_JAVA/oracle/apps/fnd/formsClient/OracleApplications.dat"
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 525 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Server -> Client : 198 bytes (Service=HTTP)
[Web Request (2994:2f60)] "GET /OA_JAVA/oracle/apps/fnd/jar/fndlist.jar"
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 562 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Server -> Client : 198 bytes (Service=HTTP)
[Web Request (2994:2f60)] "GET /OA_JAVA/oracle/jinitiator/ProxySettings.class"
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 396 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Server -> Client : 382 bytes (Service=HTTP)
[Web Request (2994:2f60)] "GET /forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.lVDnjML3ViVvt1QJ_v6R6Q..'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=2.18262283278568450965358732583791582647E38&fsvt=17019084645679200546992425985068087089&acceptLanguage=en-US&ifcmd=startsession"
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 1143 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Server -> Client : 468 bytes (Service=HTTP)
[Web Request (2994:2f60)] "GET /forms/lservlet;JsessionIDForms=gKeCCZD8Nb2vRg7a9Op_ZIrgLDf0qYVbmjPnGZqRS4DX8hfl1jsu!49832174?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.56.1"
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 611 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Server -> Client : 287 bytes (Service=HTTP)
[Network Analyzer (2994:2f60)] (Sid: 1) Client -> Server @ : 618 bytes (Service=HTTP)
[Web Request (2994:2f60)] "POST /forms/lservlet;JsessionIDForms=gKeCCZD8Nb2vRg7a9Op_ZIrgLDf0qYVbmjPnGZqRS4DX8hfl1jsu!49832174"

 

2.This is part of CodeGenerationLog.txt and found that the Server responded with JSessionIDForms in the cookie header after /forms/frmservlet call

****** Request Header For Transaction With Id 366 ******
GET /forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.lVDnjML3ViVvt1QJ_v6R6Q..'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=2.18262283278568450965358732583791582647E38&fsvt=17019084645679200546992425985068087089&acceptLanguage=en-US&ifcmd=startsession HTTP/1.1
Cache-Control: no-cache
Pragma: no-cache
User-Agent: Mozilla/4.0 (Windows 7 6.1) Java/1.8.0_77
Host: xxx.yyy.net:8000
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Connection: keep-alive
Cookie: oracle.uix=0^^GMT+00:00^p; treemenu1=none open; JSESSIONID=usaCCV_p7M4s2I6dQ2Etl0yBK_IRWbEkuDwvKDclkxdLSG_bV1HJ!-2132229040; VIS=bXQlMRDFZW0rpgtkURT9LXfu9O
$$$$$$ Request Header For Transaction With Id 366 Ended $$$$$$

****** Response Header For Transaction With Id 366 ******
HTTP/1.1 200 OK
Date: Sat, 13 Aug 2016 03:54:40 GMT
Server:
Content-Length: 93
X-ORACLE-DMS-ECID: 005EUjpNFPu7i4WFLzvH8A0001dD0000Au
Set-Cookie: JsessionIDForms=gKeCCZD8Nb2vRg7a9Op_ZIrgLDf0qYVbmjPnGZqRS4DX8hfl1jsu!49832174; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
Keep-Alive: timeout=15
Connection: Keep-Alive
Content-Type: text/plain
Content-Language: en
$$$$$$ Response Header For Transaction With Id 366 Ended $$$$$$


3.Based on the result from #1 and #2, I placed below in the HTTP-based script

web_reg_find("Text=Oracle E-Business Suite R12 ",LAST);
web_reg_save_param("NCAJServSessionId","LB=", "RB=", "Search=Noresource", LAST);
web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);",SEARCH_FILTERS,"Scope=Headers","IgnoreRedirections=No",LAST);
web_url("runforms.jsp",
"URL=http://xxx.yyy.net:8000/OA_HTML/runforms.jsp?icx_ticket={icx_ticket}&resp_app=SYSADMIN&resp_key=SYSTEM_ADMINISTRATOR&secgrp_key=STANDARD&start_func=FND_FNDCPVCM&other_params=",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t8.inf",
"Mode=HTML",
EXTRARES,
"URL=../OA_JAVA/oracle/forms/registry/Registry.dat", ENDITEM,
"URL=../OA_JAVA/oracle/apps/fnd/formsClient/OracleApplications.dat", ENDITEM,
"URL=../OA_JAVA/oracle/apps/fnd/jar/fndlist.jar", ENDITEM,
"URL=../forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.{icx_ticket}'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=2.18262283278568450965358732583791582647E38&fsvt=17019084645679200546992425985068087089&acceptLanguage=en-US&ifcmd=startsession", ENDITEM,
"URL=../forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.56.1", ENDITEM,
"URL=../OA_JAVA/oracle/apps/fnd/jar/fndaolj.jar", ENDITEM,
"URL=../OA_JAVA/oracle/apps/fnd/jar/fndxmlparserv2.jar", ENDITEM,
"URL=../OA_JAVA/oracle/apps/fnd/jar/fndutil.jar", ENDITEM,
LAST);

4.However when I replay the script, it seems {JsessionIDForms} is not replaced in the first occurence
This is part of Apache access_log showing {JsessionIDForms} is not replaced

GET /OA_JAVA/oracle/forms/registry/Registry.dat HTTP/1.1" 200 4117
GET /OA_JAVA/oracle/apps/fnd/formsClient/OracleApplications.dat HTTP/1.1" 200 1361
GET /forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.cf0oURLL12TLJU5WIoG_-g..'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=2.18262283278568450965358732583791582647E38&fsvt=17019084645679200546992425985068087089&acceptLanguage=en-US&ifcmd=startsession HTTP/1.1" 200 293
GET /forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.56.1 HTTP/1.1" 200 83
GET /OA_JAVA/oracle/apps/fnd/jar/fndaolj.jar HTTP/1.1" 200 536388
GET /OA_JAVA/oracle/apps/fnd/jar/fndutil.jar HTTP/1.1" 200 141990
GET /OA_JAVA/oracle/apps/fnd/jar/fndxmlparserv2.jar HTTP/1.1" 200 1638608
GET /forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.cf0oURLL12TLJU5WIoG_-g..'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=2.29529557332574272210922245776776831487E38 HTTP/1.1" 200 47460

5.Replay log file also shows that {JsessionIDForms} is not reaplced in the first occurence but it was found and saved later on (Line 274354, 274365)

188959 Action.c(181): Downloading resource "http://xxx.yyy.net:8000/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIM..." (specified by argument number 15) [MsgId: MMSG-26577]
188960 Action.c(181): Downloading resource "http://xxx.yyy.net:8000/forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.56.1" (specified by argument number 17) [MsgId: MMSG-26577]

274354 Action.c(181): Set-Cookie: JsessionIDForms=XxWCDWIb3NArH4Uhs6OHSJgBc85iCUfNnyWLJtuR2ekD8KWoOAVD!49832174;
274365 Action.c(181): Notify: Saving Parameter "JsessionIDForms = XxWCDWIb3NArH4Uhs6OHSJgBc85iCUfNnyWLJtuR2ekD8KWoOAVD!49832174".

My question is if,

1.Appropriate correlation is being used for JsessionIDForms in the script, IE, web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);",SEARCH_FILTERS,"Scope=Headers","IgnoreRedirections=No",LAST);

2.The location of the correlation for JsessionIDForms in the script is in right position or order

Any advice or comments would be very much appreciated

Cheers,

Jason

0 Likes
1 Solution

Accepted Solutions
Highlighted
Honored Contributor.
Honored Contributor.

Hi Jason,

This is not likely to be the right position as the web_reg function should be at least one step before the step that uses the value saved.

Since it is registry function, the value that is being save is a result of the following step and therefore you can't have the value used and save on the same step.

Please do the following:

1. Go to the code generation tab

2. Search for the value you are trying to capture (as appears in the script)

3. from the first instance of it search down for ".inf"

The outcome will be a step name in the script. locate the web_reg function before that step in the script (you can find it by searching in t#.inf in the script).

View solution in original post

12 Replies
Highlighted
Honored Contributor.
Honored Contributor.

Please checking in the general settings to see if someone changed the correlations brackets. It might be that the settings is not '{' and '}'.

 

Highlighted
Absent Member.
Absent Member.

Hi H2O_2

 

Thanks for your update. I'm the only one using LR so no changes in configuration/settings made

As I mentioned, JsessionIDForms value is not picked up in first occurence but picked up in second occurenence as shonw in the logs attached in the previous post. So I guess it is not the issue with '{' and '}'.

Having said that, what settings to be checked for '{' and '}'? Please provide me with menu path for the setting

Appreciate your help

Cheers,

Jason

0 Likes
Highlighted
Absent Member.
Absent Member.

Hi H2O_2,

I have checked setting and found parameter delimiter is '{' and '}' as shown in the screen capture below.

Cheers,

0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

The only logical thing is that the parameter is save after the specified step.

This could be done either if the correlation function is after the step (it could also be since there are several extrares in the step).

I would suggest to:

1. Verify the web_reg_save_param appears before the usage of the parameter in the script

2. in case it is save in the save step you are using to limit the ammount of connections to the server to synchronize the order by add web_set_socket_options with max connections to the server limited to 1.

3. You can also try to acheive this by generating the script in HTTP mode rather than using HTML

Highlighted
Absent Member.
Absent Member.

Hi H2O_2

Thank you very much for your update.

1.It seems the order of web_reg_save_param_regexp is appropriate and it appears before the acture URL

2.Have tried with web_set_socket_options("MAX_CONNECTIONS_PER_HOST","1") but did not help

3.Recored in URL-Mode but now ran into below error. LR can't find JsessionIDForms at all.

Action.c(897): Error -35049: No match found for the requested parameter "JsessionIDForms". Check whether the requested regular expression exists in the response data [MsgId: MERR-35049]
Action.c(897): Error -26377: No match found for the requested parameter "NCAJServSessionId". Either the specified boundaries were not found in the response or the matched text is longer than current max html parameter size of 8192000 bytes. The total length of the response is 293 bytes. You can use "web_set_max_html_param_len" to increase the max parameter size. [MsgId: MERR-26377]

Tried with below correlations in this replay,

Test 1 : web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Cookies",LAST);
Test 2 : web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Headers",LAST);

Any idea?

Thanks in advance

Jason

0 Likes
Highlighted
Absent Member.
Absent Member.

Hi H20_2,

1.I have resolved Error -35049 for JsessionIDForms by relocating web_reg_save_param_regexp as shown below,

    web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=All",LAST);
    
    web_url("lservlet;JsessionIDForms=cxebGT66TzOFYecsO5qehBHWjhFHV9HJvxZGr8ZcBPQLwtoKUDaw!-2016963424",
        "URL=http://xxx.yyy.net:8000/forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.9.115",
        "Resource=1",
        "RecContentType=application/octet-stream",
        "Referer=",
        "Snapshot=t83.inf",
        LAST);

2.I have resolved Error -35049 for NCAJServSessionId by commenting out web_reg_save_param_regexp for it,

3.However, LR still doesn't pick up JsessionIDForms from all of the sources and substitute the parameters as shown below

Action.c(883): t=24072ms: Request done "http://xxx.yyy.net:8000/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIM..." [MsgId: MMSG-26000]
Action.c(883): web_url("frmservlet") was successful, 293 body bytes, 266 header bytes [MsgId: MMSG-26386]
Action.c(891): web_reg_save_param_regexp started [MsgId: MMSG-26355]
Action.c(891): Registering web_reg_save_param_regexp was successful [MsgId: MMSG-26390]
Action.c(896): web_url("lservlet;JsessionIDForms=cxebGT66TzOFYecsO5qehBHWjhFHV9HJvxZGr8ZcBPQLwtoKUDaw!-2016963424") started [MsgId: MMSG-26355]
Action.c(896): Warning: The string 'JsessionIDForms' with parameter delimiters is not a parameter.
Action.c(896): t=24087ms: Already connected [0] to xxx.yyy.net:8000 [MsgId: MMSG-26000]
Action.c(896): t=24087ms: 543-byte request headers for "http://xxx.yyy.net:8000/forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.9.115" (RelFrameId=1, Internal ID=85)
Action.c(896): GET /forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192
Action.c(896): .168.9.115

Anything else I can try further?

Thanks in advance

Cheers,

Jason

0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

Hi Jason,

This is not likely to be the right position as the web_reg function should be at least one step before the step that uses the value saved.

Since it is registry function, the value that is being save is a result of the following step and therefore you can't have the value used and save on the same step.

Please do the following:

1. Go to the code generation tab

2. Search for the value you are trying to capture (as appears in the script)

3. from the first instance of it search down for ".inf"

The outcome will be a step name in the script. locate the web_reg function before that step in the script (you can find it by searching in t#.inf in the script).

View solution in original post

Highlighted
Absent Member.
Absent Member.

Hi H2O_2,

Thanks for the update. I really appreciate your continous assistance/update in the forum.

As you mentioned, I searched the first instance of JsessionIDForms in the CodeGenerationLog.txt and found it in the cookie header and response header before  "Snapshot=t82.inf" as shown below

=====================================================================================

****** Response Header For Transaction With Id 303 ******
HTTP/1.1 200 OK
Date: Thu, 18 Aug 2016 07:22:14 GMT
Server:
Content-Length: 96
X-ORACLE-DMS-ECID: 005E_Dksqu17i4WFLzvH8A0002250000ah
Set-Cookie: JsessionIDForms=0k-ch2VS6Ehis3VwIaX-fiOSvzWyeuR3jUYIId9yTRF-EOCyk6aG!-2016963424; path=/; HttpOnly
X-Frame-Options: SAMEORIGIN
Keep-Alive: timeout=15
Connection: Keep-Alive
Content-Type: text/plain
Content-Language: en


$$$$$$ Response Header For Transaction With Id 303 Ended $$$$$$

****** Response Body For Transaction With Id 303 ******
/forms/lservlet;JsessionIDForms=0k-ch2VS6Ehis3VwIaX-fiOSvzWyeuR3jUYIId9yTRF-EOCyk6aG!-2016963424
$$$$$$ Response Body For Transaction With Id 303 Ended $$$$$$

****** Start Log Message ******

Start Frames Hierarchy Tree Dump
/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='._S1_BynWq7nMamgjgSEeYA..'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDCPVCM'+other_params=''&encoding=UTF-8&fsst=1.62553237317396944080780525901993427312E38
End Frames Hierarchy Tree Dump

$$$$$$ End Log Message $$$$$$

****** Add Event For Transaction With Id 303 ****** (Location Flag : tFlagInsertAfter, Location ID : 299)
web_url("frmservlet",
"URL=http://xxx.yyy.net:8000/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIM...",
"Resource=1",
"RecContentType=text/plain",
"Referer=",
"Snapshot=t82.inf",
LAST);


$$$$$$ Add Event For Transaction With Id 303 Ended $$$$$$

=====================================================================================

However If I place  web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Cookies",LAST);  just before it in the HTTP-Mode script(even HTML mode), I run into below error ( and even with Scope=Headers and All)

Action.c(1223): Error -35049: No match found for the requested parameter "JsessionIDForms". Check whether the requested regular expression exists in the response data, Snapshot Info [MSH 1 90] [MsgId: MERR-35049]

But If I place it prior to Snapshot=t83.inf where the actual parameter to replace (JsessionIDForms={JsessionIDForms}?ifcmd) found,

=====================================================================================

web_reg_save_param_regexp("ParamName=JsessionIDForms","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Cookies",LAST);

   web_url("lservlet;JsessionIDForms=0k-ch2VS6Ehis3VwIaX-fiOSvzWyeuR3jUYIId9yTRF-EOCyk6aG!-2016963424",
        "URL=http://xxx.yyy.net:8000/forms/lservlet;JsessionIDForms={JsessionIDForms}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.9.115",
        "Resource=1",
        "RecContentType=application/octet-stream",
        "Referer=",
        "Snapshot=t83.inf",
        LAST);

=====================================================================================

then it picked up the value

Action.c(1224): Notify: Saving Parameter "JsessionIDForms = KLOcs92qUlTIHydK_6B3cX67fy_K_d6RGPvDunJqey6JyokT2mAM!-2016963424".

But never replace the parameter with the value found

Any other suggestion?

Thanks,

Jason

0 Likes
Highlighted
Absent Member.
Absent Member.

HI H2O_2,

I have tried with a couple of locations for the parameter and finally found the appropriate location of the parameter as per below.

First of all, I realised that JsessionIDForms should be a replacement of NCAJServSessionId accodring to several resources on the web.

So I commented out the original correaltion which automatically created by VuGen and add the one in the script.

http://lrhelp.saas.hpe.com/en/latest/help/WebHelp/Content/VuGen/t_how_to_correlate_scripts_oracle_NCA.htm

--> Do not correlate hostname and port unlike mentioned in above note. It does give wrong value

https://overloaded.io/creating-oracle-12-scripts-loadrunner

=======================================================================================

    web_reg_save_param_regexp("ParamName=NCAJServSessionId","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Cookies",LAST);

    web_url("frmservlet",
        "URL=http://xxx.yyy.net:8000/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIM...",
        "Resource=1",
        "RecContentType=text/plain",
        "Referer=",
        "Snapshot=t82.inf",
        LAST);

=======================================================================================

 Secondly, I added a few more correlations in addition to ICX_TICKET and JSessionIDForms(fsst, fsvt).

as I found fsst and fsvt also vary in each interation

=======================================================================================  

  web_reg_save_param_regexp("ParamName=fsst","RegExp=fsst=(.*?)&\\#38",SEARCH_FILTERS,"Scope=Body","IgnoreRedirections=No",LAST);
   web_reg_save_param_regexp("ParamName=icx_ticket","RegExp=gv15=(.*?)&\\#38",SEARCH_FILTERS,"Scope=Body","IgnoreRedirections=No",LAST);

    web_url("RF.jsp_3", 
        "URL=http://xxx.yyy.net:8000/OA_HTML/RF.jsp?function_id=93&resp_id=20420&resp_appl_id=1&security_group_id=0&lang_code=US&oas=qmS8zdzkeprBwsiusDOV4Q..&formsLink=yes", 
        "Resource=0", 
        "RecContentType=text/html", 
        "Referer=http://xxx.yyy.net:8000/OA_HTML/OA.jsp?OAFunc=OANEWHOMEPAGE", 
        "Snapshot=t68.inf", 
        "Mode=HTTP", 
        LAST);


    web_reg_save_param_regexp("ParamName=fsst_1","RegExp=fsst=(.*?)&\\#38",SEARCH_FILTERS,"Scope=Body","IgnoreRedirections=No",LAST);
    web_reg_save_param_regexp("ParamName=fsvt","RegExp=fsvt=(.*?)&\\#38",SEARCH_FILTERS,"Scope=Body","IgnoreRedirections=No",LAST);

    web_url("runforms.jsp",
        "URL=http://xxx.yyy.net:8000/OA_HTML/runforms.jsp?icx_ticket={icx_ticket}&resp_app=SYSADMIN&resp_key=SYSTEM_ADMINISTRATOR&secgrp_key=STANDARD&start_func=FND_FNDPOMPV&other_params=",
        "Resource=0",
        "RecContentType=text/html",
        "Referer=",
        "Snapshot=t76.inf",
        "Mode=HTTP",
        LAST);

    web_reg_save_param_regexp("ParamName=NCAJServSessionId","RegExp=JsessionIDForms=(.*?);","Ordinal=1",SEARCH_FILTERS,"Scope=Cookies",LAST);

    web_url("frmservlet",
        "URL=http://xxx.yyy.net:8000/forms/frmservlet?play=&record=names&lang=US&lookAndFeel=ORACLE&colorScheme=SWAN&serverApp=OracleApplications&digitSubstitution=CONTEXT&env=NLS_LANG='AMERICAN_AMERICA'+FORMS_USER_DATE_FORMAT='DD-MON-RRRR'+FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR+HH24%3AMI%3ASS'+NLS_DATE_LANGUAGE='AMERICAN'+NLS_SORT='BINARY'+NLS_NUMERIC_CHARACTERS='.,'+FORMS_TZFILE='timezlrg.dat'+FORMS_DATETIME_SERVER_TZ='America%2FChicago'+FORMS_DATETIME_LOCAL_TZ='GMT'&form_params=+config='VIS'+icx_ticket='.{icx_ticket}'+resp='SYSADMIN%2FSYSTEM_ADMINISTRATOR'+secgrp='STANDARD'+start_func='FND_FNDPOMPV'+other_params=''&encoding=UTF-8&fsst={fsst_1}&fsvt={fsvt}&acceptLanguage=en-AU&ifcmd=startsession",
        "Resource=1",
        "RecContentType=text/plain",
        "Referer=",
        "Snapshot=t82.inf",
        LAST);

    web_url("lservlet;JsessionIDForms=Rq6jPHX1ipapDS-SQfiGuKDSIbz9YSSDmzyNpzFUQQtfNcyOZEFq!574806450",
        "URL=http://xxx.yyy.net:8000/forms/lservlet;JsessionIDForms={NCAJServSessionId}?ifcmd=getinfo&ifhost=MYPC&ifip=192.168.9.115",
        "Resource=1",
        "RecContentType=application/octet-stream",
        "Referer=",
        "Snapshot=t83.inf",
        LAST);

nca_connect_server("xxx.yyy.net","8000", "module=$FND_TOP/forms/US/FNDSCSGN fndnam=APPS record=names  config='VIS' icx_ticket='.{icx_ticket}' resp='SYSADMIN/SYSTEM_ADMINISTRATOR' secgrp='STANDARD' start_func='FND_FNDPOMPV' other_params=''::NLS_LANG='AMERICAN_AMERICA' FORMS_USER_DATE_FORMAT='DD-MON-RRRR' FORMS_USER_DATETIME_FORMAT='DD-MON-RRRR HH24:MI:SS' NLS_DATE_LANGUAGE='AMERICAN' NLS_SORT='BINARY' NLS_NUMERIC_CHARACTERS='.,' FORMS_TZFILE='timezlrg.dat' FORMS_DATETIME_SERVER_TZ='America/Chicago' FORMS_DATETIME_LOCAL_TZ='GMT'");

=======================================================================================

Now all the parameters are picked up and replaced during replay.

Action.c(710): Notify: Parameter Substitution: parameter "fsst" = "1.00450053839090365175544017870744911613E38"
Action.c(902): Notify: Parameter Substitution: parameter "fsst_1" = "2.35818677189478354754982859290834165673E38"
Action.c(902): Notify: Parameter Substitution: parameter "fsvt" = "1.73353118308636463839238022551835490667E38"
Action.c(926): Notify: Parameter Substitution: parameter "icx_ticket" = "OkGX3g7COvjDjRWSZuqx_g.."
Action.c(926): Notify: Parameter Substitution: parameter "NCAJServSessionId" = "gtCmIj4Sfvoy88OLDrZCnM2LWC99jNYni_lk6-DxbmC1i1U42vUU!-372935544"

 

Addition, To make it work in replay, should have below in default.cfg

[HttpConnectMode]
RelativeURL=/forms/lservlet;JsessionIDForms={NCAJServSessionId}  
--> this was initially just {NCAJServSessionId} but it is wrong. it must be /forms/lservlet;JsessionIDForms={NCAJServSessionId}.
UseHttpConnectMode=1
UseServletMode=2

Thanks for your assistance

Cheers,

Jason

 

Highlighted
New Member.

Hi jasonwatsonssi,

I'm glad that you sovled your issue and interested in your solution. As in my case, I don't even see that runforms.jsp request in the script that allows me to data correlated both fsst value, however I can see that request in the CodeGenerationLog.txt file, I was wondering what would be the root cause why/what is blocking that runforms.jsp request being generated in LR script.

Here's the attributes I used
Protocol - OracleNCA + Web HTTP/HTML
VuGen version - v12.01 Build 2079
Java version - 1.8.1_101
FireFox ESR - 45.3.01
Oracle Form Version : 12.0.306.12020000.72

Have tried - DEP disabled, Anti-Virus disabled, Both HTML and URL-based recording  

Any comment/advise would be very appreciated.

0 Likes
Highlighted
Honored Contributor.
Honored Contributor.

Hi George,

Please try to see if you generate the script in HTTP mode rather than HTML mode solves the problem.

If not, this will require a ticket with HPE support.

Thanks,

0 Likes
The opinions expressed above are the personal opinions of the authors, not of Micro Focus. By using this site, you accept the Terms of Use and Rules of Participation. Certain versions of content ("Material") accessible here may contain branding from Hewlett-Packard Company (now HP Inc.) and Hewlett Packard Enterprise Company. As of September 1, 2017, the Material is now offered by Micro Focus, a separately owned and operated company. Any reference to the HP and Hewlett Packard Enterprise/HPE marks is historical in nature, and the HP and Hewlett Packard Enterprise/HPE marks are the property of their respective owners.