Highlighted
Honored Contributor.. Honored Contributor..
Honored Contributor..
376 views

Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

I am having a challenge with Async calls in VuGen 12.50 Build 1096 on 64 bit Windows 7 when scripting SAP BusinessObjects BI 4.1 SP4.

Do I need to update autogenerated code only in AsyncCallbacks.c or also in Action.c? For example, do I need to update timestamps in target URLs in Action.c as well?

I receive the following error from Async code:

Action.c(1282): Error -26499: Internal Error - Invalid mptVUserVars=07FEFFA0 / mptOriginatingTaskItem=090C5158 / muliTimestampEndOriginatingTaskItem=100554 / ptLocalPtrToRequestToRepeat=091DEFC0 / _bIsValid=1 / _eXMLHttpRequest=Async / ptLocalPtrToConversInfoItem=09F56E00 / Pattern=Poll / _uliTimestampCrntConversHandlingStart=0 in LrwSrvNetTaskItem 09DD7940 0332 #3 CTOR for RequestToRepeat   [MsgId: MERR-26499]
Action.c(1282): Javascript calling stack is empty   [MsgId: MMSG-26000]
Action.c(1282): Error -26499: Internal Error - Invalid ptRepeatedRequestTaskItem->_bIsValid=0 / ptRepeatedRequestTaskItem->_ptRequestToRepeat=00000000 / this->_ptRequestToRepeat=091DEFC0 / ptLocalPtrToRequestToRepeat=091DEFC0 for ptRepeatedRequestTaskItem=09DD7940 and this=090C5158. Pattern="Poll", ID="poll_0", URL="https://domain.com/BOE/portal/1411051212/AnalyticalReporting/webiDHTML/viewer/html/empty.html?1447865393238"   [MsgId: MERR-26499]

My script has the following auto-generated code:
    web_reg_async_attributes("ID=Poll_0",
              
"Pattern=Poll"            
"URL=https://domain.com/BOE/portal/{Date_Path_}/AnalyticalReporting/webiDHTML/viewer/html/empty.html?1447860195389",           "PollIntervalMs=20000",
         
"RequestCB=Poll_0_RequestCB",
         
"ResponseCB=Poll_0_ResponseCB",
          
LAST);     

web_url("empty.html_11",  // This is line 1282 that generates Error -26499: Internal Error - Invalid mptVUserVars=07FEFFA0 / mptOriginatingTaskItem=090C5158 ...
        "URL=https://domain.com/BOE/portal/{Date_Path_}/AnalyticalReporting/webiDHTML/viewer/html/empty.html?1447860195389",
         
"Resource=0",
        
"RecContentType=text/html",
        
"Referer=https://domain.com/BOE/portal/{Date_Path_}/AnalyticalReporting/webiDHTML/viewer/viewDocument.jsp?id={BO_aliasid_1}&kind=Webi&ViewType=I&entSession=CE_ENTERPRISESESSION&lang=en&appKind=InfoView&loc=en&pvl=en_CA",         "Snapshot=t50.inf",
        
"Mode=HTML",
        
LAST);

web_stop_async("ID=Poll_0"LAST);

 

AsyncCallbacks.c has the following code:
int Poll_0_RequestCB()
{
    
//Enter your implementation for RequestCB() here.
    //Call web_util_set_request_url() here to modify polling URL.
    //URL is expected to be of the form:     //https://domain.com/BOE/portal/1411051212/AnalyticalReporting/webiDHTML/viewer/html/empty.html?{TimeStamp_Poll_0_0}

    //The following parameter must be assigned:
      web_save_timestamp_param("TimeStamp_Poll_0_0",LAST);
    
//Once all parameters have been assigned, copy them to the updated URL.
    //Then call web_util_set_request_url() with the updated URL:
    web_util_set_request_url("https://domain.com/BOE/portal/{Date_Path_}/AnalyticalReporting/webiDHTML/viewer/html/empty.html?{TimeStamp_Poll_0_0}");
    
//Call web_util_set_request_body() here to modify request body:
    //web_util_set_request_body("<request body>");
    return WEB_ASYNC_CB_RC_OK;
}

int Poll_0_ResponseCB(
    
const char *    aResponseHeadersStr,
    int                aResponseHeadersLen,
    const char *    aResponseBodyStr,
    int                aResponseBodyLen,
    int                aHttpStatusCode)
{
    //Enter your implementation for ResponseCB() here.
    //TODO - To make the script wait for a specific response, use web_sync in the relevant Action file.
    //See the Modifying Callbacks section in the VuGen user guide for more details.     return WEB_ASYNC_CB_RC_OK;
}

P.S. A few times I manually coded polling logic in my LoadRunner scripts, but today is the first time I am trying to use built-in Async functions.

P.P.S. I had other scripting challenges when using java Web Start / JNLP and switched to HTTP mode of the same application as suggested by SAP.

0 Likes
5 Replies
Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

Re: Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

Hello Yurym,

 

Thank you for your post.

Regarding your concern, yes, you need to regenerate the Action.c. This because as you know, this settings are created when you add the different options on the Asynchronous Options, and could casued mismatch from the AsyncCallbacks.c and could casued different errors with your script.

 

If you need more information about Asynchronous calls, please refer to the following link:

http://community.hpe.com/t5/LoadRunner-and-Performance/Testing-asynchronous-business-processes-with-LoadRunner/ba-p/6029011#.VkzbH3arTIV

 

 

Regards,

Daniela Gómez Alvarado
Customer Support Engineer

If you find that this or any other post resolves your issue, please be sure to mark it as an accepted solution.
If you are satisfied with anyone’s response please remember to give them a KUDOS by clicking on the STAR at the bottom left of the post and show your appreciation.
0 Likes
Highlighted
Honored Contributor.. Honored Contributor..
Honored Contributor..

Re: Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

Thank you Daniela,

I used the following workflow:
1) Recorded a script with "Async scan" enabled
    VuGen automatically generated Async functions

2) Then I correlated other tokens

3) It seems that I have not updated AsyncCallbacks.c/Action.c after that

4) Then I tried executed this script and received Error -26499: Internal Error - Invalid mptVUserVars=07FEFFA0 / mptOriginatingTaskItem=090C5158 ...

 

Daniela, I you saying that I need to regenerate this script one more time?

 

As for you link:
http://community.hpe.com/t5/LoadRunner-and-Performance/Testing-asynchronous-business-processes-with-LoadRunner/ba-p/6029011#.Vkzd_RFdGou

it doesn't have an example of a Poll request with target URL correlated/parameterized.

Could you please provide a more detailed example of an Async polling call?

 

0 Likes
Highlighted
Acclaimed Contributor.
Acclaimed Contributor.

Re: Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

Hello Yurym,

Could you please share your entire script please? 

Regards,

Daniela Gómez Alvarado
Customer Support Engineer

If you find that this or any other post resolves your issue, please be sure to mark it as an accepted solution.
If you are satisfied with anyone’s response please remember to give them a KUDOS by clicking on the STAR at the bottom left of the post and show your appreciation.
0 Likes
Highlighted
Honored Contributor.. Honored Contributor..
Honored Contributor..

Re: Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

It looks like "Heartbeat" type of Async communication was used by this application.
At the same time VuGen attempted to interprete it as a "Poll" .
Aa far as I understand  "Heartbeat" calls are not supported by LoadRunner right now.

0 Likes
Highlighted
Frequent Contributor.
Frequent Contributor.

Re: Async call in SAP BusinessObjects BI 4.1 SP4 generated Error -26499: Internal Error - Invalid …

Please use Push instead.  Poll maybe incorrectly recorded by the Async

 // Push register was here
        web_reg_async_attributes("ID=Push_0", 
        "Pattern=Push", 
        "URL=https://yourURL.COM?transport=foreverFrame&clientProtocol=1.5&connectionToken={CONNECTIONTOKEN}&connectionData=%5B%7B%22name%22%3A%22interactionhub%22%7D%5Dtid={TID}&frameId=1", 
        "RequestCB=Push_0_RequestCB", 
        "ResponseHeadersCB=Push_0_ResponseHeadersCB", 
        "ResponseBodyBufferCB=Push_0_ResponseBodyBufferCB", 
        "ResponseCB=Push_0_ResponseCB", 
        LAST);

modify your call.c with the functions 

 

int Push_0_ResponseBodyBufferCB(
    const char *    aLastBufferStr,
    int                aLastBufferLen,
    const char *    aAccumulatedStr,
    int                aAccumulatedLen,
    int                aHttpStatusCode)
{
    //Enter your implementation for ResponseBodyBufferCB() here.
    
    
    lr_vuser_status_message("This is accumulated String %s", aAccumulatedStr);
    lr_vuser_status_message("This is response body %s", aLastBufferStr);

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.