Saturday, January 3, 2009

Com\DCOM, .NET Protocol Grid Lines/Data Table

If the data value returned by Database is very long, only part of it is shown in the grid. please note that this truncation only occurs in the displayed grid and has no impact on the data.
The grid columns are adjustable in width. You can scroll up to 200 rows
using the scroll bar. To change this value, open the vugen.ini file on your
machine’s Operating System folder (e.g. C:\WINDOWS) and add the
following entry:
[general]
max_line_at_grid=200
if you want to correlate a value or save the data to a file, click in a cell and use the right click menu options, Create Correlation or Save To File.

Friday, October 17, 2008

LR Error List COM|DCOM

These are some of the errors you might encounter in a COM\DCOM protocol
Protocol: COM/DCOM
Error: Vuser failed to initialize extension vbascriptext.dll.
Reasons: VBA not installed on the Controller or Vugen Machine
Solution: Install the VBA Setup from the start->All Programs-> Load Runner -> Tools -> VBA Setup


Error: 3021 - Either BOF or EOF is True, or the current record has been deleted.
Requested operation requires a current record
Reasons: While recording, LoadRunner saves the content of a recordset into a file using the save function from ADO::Recordset.
To implement this, LoadRunner will move the pointer to the EOF. If the application cannot detect the pointer position,
and tries to move the pointer that is already at the EOF, it will cause a problem or crash.

Solution: Turn off the "Save recordset content" options in Recording Options
Turn off the "Save recordset content" option in Recording Options. This will allow the application to move on, but it will
also lose the Grids.


Error: VBA Script Error: Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Source: ADODB.Field
wCode: 0 (0x00000000)
sCode: -2146825267 (0x800a0bcd)
Help Context: C:\WINDOWS\HELP\ADO270.CHM (1240645)
Reasons: If the record you are looking for does not exist in the current context.
Solution: Stage data properly



Error: 0x800a0006 Buffer Overflow
Reasons: Type Conversion problem. trying to convert a value larger than 32767 into an integer. (error occured when OrderNumber is greater than 32767)
Solution: try using clng instead of cint.


Error : 0x800A000D Type mismatch
Reasons: wrong Type for the sending argument
Solution: clng,cbool,cint,cstr etc.

Error: 0x800A005B Object variable or with block variable not set
Reasons: permissions
Solution: give the user complete folder permissions

Error: Run-time error 383. 'Text' property is readonly
Reasons:
Private Sub Form_Load()
With Combo1 'Style = 2 Dropdown list
.AddItem "One"
.AddItem "Two"
.AddItem "Three"
End With
End Sub

Private Sub Command1_Click()
'No error
Combo1.Text = "Two"
End Sub

Private Sub Command2_Click()
'383 error
Combo1.Text = "Four"
End Sub
Solution:
Pass the correct value for the drop down boxes


Error : ADODB.Recordset (0x800A0E78)
Reason:

set dbs = Server.CreateObject("ADODB.Connection")

dbs.Open strODBC
set rst = dbs.Execute(strSQL)

Do not use a recordset to execute a query that does not return records. in
fact, tell ADO not to bother constructing an expensive recordset object:

dbs.Execute strSQL,,129

The 129 is a combination of 1 (adCmdText) and 128 (adExecuteNoRecords). If
you have a metadata tag referencing the ADO type library dbs.Execute strSQL,, adCmdText + adExecuteNoRecords

Solution: use simple queries to update or insert.

Monday, September 29, 2008

one more caution..

Vuser scripting for web.

One more caution…

Ok now you got an application to performance test, you have recorded vuser scripts correlated it perfectly. And the scripts run perfectly in the controller with multiple users.

You have designed the required scenario, you also get response times. Great. Now you will assume that scripts ran successfully and response times are correct. NO. there is a catch.

Moving on….

Say you have an application where you enter the shipping number and date and submit.

So you will be directed to a page where you no longer be able to edit the information according to a business rule for a particular order.

You record the script and replay it. If you succeed you are missing something. Are you verifying whether the DML statements are getting executed on the database server, if not then chances are that you are not applying load to the database server. When you submit a request, your web server passes on the information to database. Two things happen here DML statements for inserts, updates and DDL statements to read and display the results on the webpage.

According to business rule you cannot enter shipping number and shipping date twice. Its disabled from UI.Since vuser is not UI based. If you replay the script, the vuser will run successfully. It makes no difference to the webserver. But database will not execute the dml statements because a business logic rule is defined here. So it just executes READ and sends the data back to the user. So, this is how results may not be accurate.

So how do you find out this…

REDgate SQL log rescue. Or Apex log reader sql tools will read the logs on the sql server. You can see if any transactions happened. These tools were also useful to know how many of data tables are you hitting by using your virtual users. One more advantage was you can rollback the transactions you did. This implies less data staging. Now once we get to the tabular level of detail, there are numerous ways you can find out what kind of deadlocks or blocking will occur.