Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

PowerBuilder Application Execution Error: Datastore Access

885 views
Skip to first unread message

Lois Williams

unread,
Jul 13, 2001, 12:48:48 PM7/13/01
to
Currently, we are experiencing problems with a component, in production, under
load. The logs identify one datastore as the "culprit"; however, the component
does not die in the same place. The component either dies in one of two methods
while accessing the datastore. The datastore creation and initialization (e.g.,
dataobject, transaction object, retrieve) are identical. The interesting part,
the data was just retrieved successfully (no errors logged checking the
datastore's instance variable is_dberror), so the data should exist.

>>>
Are there any known memory issues with a PB component running in Jaguar CTS
Version 3.6.1 (Build 36108)/B/PC Intel/Windows NT 4.0/OPT/Jan 18 2001 11:59:39
with the following characteristics:
1) instance datastores
2) filters and sorts are applied against the datastore (in question) (In the
above case, the datastore was filtered and sorted once)
3) instance datastores are destroyed and recreated in the activate event
4) instance datastores are destroyed in the destructor
<<<

Under load, the component dies with the "PowerBuilder Application Execution
Error". And Jaguar dies a slow, painful death with various CORBA errors until
the monitoring server/process reboots Jaguar.

When a bad "key" is reported, we identify the appropriate silo. If we access
the same page, before rebooting Jaguar, we can regenerate the aforementioned
error at will. The Jaguar server is then manually rebooted. We immediately log
back in to the silo with the same information... the aforementioned page
promptly redisplays, we "submit" and proceed without error. We were able to
reproduce this scenario with every reported "bad" key.


A sample srv.log contains:
Jul 11 10:15:26 2001: PowerBuilder Application Execution Error (R0006)
Application terminated.

Error: Invalid DataWindow row/column specified at line 145 in function
of_builddisplay of object enrl_cst_care_physicians.
Jul 11 10:15:26 2001: AFLIB Message: 18209/11/0: Transaction::Commit():
Transaction was marked ABORTONLY - Aborting!

Jul 11 10:15:26 2001: CTS.PBUserException: Invalid DataWindow row/column
specified;20506;145;enrl_cst_care_physicians;enrl_cst_care_physicians;of_builddi
splay;


Thanks in advance,
Lois

---== Posted via the PFCGuide Web Newsreader ==---
http://www.pfcguide.com/_newsgroups/group_list.asp

Carson Hager [Team Sybase]

unread,
Jul 13, 2001, 12:57:13 PM7/13/01
to
Are you checking to make sure that you actually have rows in the datastore
before executing your GetItemXXX() ( or dot notation ) methods on the
datastore?


Carson

___________________________________________________________

Carson Hager
Team Sybase
Cynergy Systems, Inc.
Sybase Enterprise Application Studio Consulting and Training
http://www.cynergysystems.com

"Lois Williams" <WS-SSN-TeamATaonDOTcom> wrote in message
news:$IM7vu7C...@forums.sybase.com...

Real Gagnon

unread,
Jul 13, 2001, 1:41:30 PM7/13/01
to
Check if "Bind Thread" checkbox is checked on the Advanced Tabpage on PB's
Properties for Jaguar component Tab. If not, check it and redeploy.

With datastore defined as instance, you must check it.


--
Real Gagnon from Quebec, Canada
* Looking for Java or PowerBuilder snippets ?
* Visit Real's How-to http://www.rgagnon.com/howto.html

"Lois Williams" <WS-SSN-TeamATaonDOTcom> a écrit dans le message news:
$IM7vu7C...@forums.sybase.com...


> Currently, we are experiencing problems with a component, in production,
under
> load. The logs identify one datastore as the "culprit"; however, the
component
> does not die in the same place

Lois Williams

unread,
Jul 13, 2001, 2:12:35 PM7/13/01
to
In the one method, a check is performed against the retrieve() rowcount and in
the other method, it is not. We have generated a fix to validate the retrieve()
rowcount in both methods. It will also recheck the datastore prior to accessing
the row (which exists in the database).

This will allow the component to "exist" for a bit longer until the instance
datastore fails during the retrieve.

According to past history, the datastore retrieve will "fail". The log records a
-1 as the return value for the datastore's retrieve(), 0 for the transaction
object's sqlcode, and blank in the instance datastore's is_dbcode, which is
populated from the transaction object's sqlerrtext in the dberror event.

But, we are not even getting to that point. The component was altered to use
filtering and sorting; so as to reduce the number of database calls, which
should reduce the number of retrieve failures which are recorded without errors.

Keep in mind that this only happens under load. We can run the identical set of
data/screens with a load of 5-10 "users" and the Jaguar server log does not
contain any errors.

Thanks in advance,
Lois Williams

On Fri, 13 Jul 2001 12:57:13 -0400,
in sybase.public.easerver.powerbuilder

Lois Williams

unread,
Jul 13, 2001, 2:16:28 PM7/13/01
to
It is. The component properties, from the props file, are:

#Jaguar CTS 3.6 Properties
com.sybase.jaguar.component.auto.failover=true
com.sybase.jaguar.component.bind.object=false
com.sybase.jaguar.component.bind.thread=true
com.sybase.jaguar.component.context=
com.sybase.jaguar.component.control=JaguarCOM::ObjectControl
com.sybase.jaguar.component.debug=false
com.sybase.jaguar.component.ejb-ref=
com.sybase.jaguar.component.ejb.home=
com.sybase.jaguar.component.ejb.remote=
com.sybase.jaguar.component.env-entry=
com.sybase.jaguar.component.files=
com.sybase.jaguar.component.home.ids=
com.sybase.jaguar.component.home=
com.sybase.jaguar.component.ids=IDL:aon_enroller/enrl_cst_care_physicians:1.0,ID
L:aon_enroller/n_jagbase:1.0
com.sybase.jaguar.component.interfaces=aon_enroller::enrl_cst_care_physicians
com.sybase.jaguar.component.iso_level=read_committed
com.sybase.jaguar.component.key=
com.sybase.jaguar.component.methods=
com.sybase.jaguar.component.model=com
com.sybase.jaguar.component.name=aon_enroller/enrl_cst_care_physicians
com.sybase.jaguar.component.pb.appname=enrl_care_physicians
com.sybase.jaguar.component.pb.class=enrl_cst_care_physicians
com.sybase.jaguar.component.pb.cookie=12
com.sybase.jaguar.component.pb.debug=false
com.sybase.jaguar.component.pb.librarylist=$enrl_care_physicians.pbd;
com.sybase.jaguar.component.pb.live_edit=false
com.sybase.jaguar.component.pb.trace=
com.sybase.jaguar.component.pooling=true
com.sybase.jaguar.component.ps=none
com.sybase.jaguar.component.reentrant=false
com.sybase.jaguar.component.refresh=true
com.sybase.jaguar.component.remote=aon_enroller::enrl_cst_care_physicians
com.sybase.jaguar.component.resource-ref=
com.sybase.jaguar.component.roles=
com.sybase.jaguar.component.runasidentity=
com.sybase.jaguar.component.runasmode=client
com.sybase.jaguar.component.security-role-refs=
com.sybase.jaguar.component.sharing=false
com.sybase.jaguar.component.stateless=false
com.sybase.jaguar.component.storage=
com.sybase.jaguar.component.thread.safe=true
com.sybase.jaguar.component.timeout=0
com.sybase.jaguar.component.trace=false
com.sybase.jaguar.component.transient=false
com.sybase.jaguar.component.tx_control=true
com.sybase.jaguar.component.tx_outcome=failed
com.sybase.jaguar.component.tx_timeout=
com.sybase.jaguar.component.tx_type=requires
com.sybase.jaguar.component.tx_vote=false
com.sybase.jaguar.component.type=pb


Thanks in advance,
Lois

On Fri, 13 Jul 2001 13:41:30 -0400,
in sybase.public.easerver.powerbuilder

---== Posted via the PFCGuide Web Newsreader ==---
http://www.pfcguide.com/_newsgroups/group_list.asp

0 new messages