Measuring efficiency/performance of JMS Servers
Is there any recommended procedure for measuring JMS Performance?
Say for e.g: Can Efficiency of Destination be a measurement criteria :
How much time does the destination takes to deliver the messages of fixed size
How does it behave if the load increases ?
Whether any messages are lost ?
How does a topic with durable subscriber behave ? etc....
Please let me know in case any body has any thoughts or have down a similar exercise
as to measure the JMS performance under normal as well as peak load.
Thanks in advance,
Kumar
The WebLogic JMS Performance Guide white-paper has some general
thoughts on this issue. You can find it at dev2dev.bea.com or here:
http://newsgroups.bea.com/cgi-bin/dnewsweb?utag=&group=weblogic.developer.interest.jms&xrelated=9372&cmd_thread_last.x=42&cmd_thread_last.y=8
Tom, BEA
Kumar Raman wrote:
> Is there any recommended procedure for measuring JMS Performance?
> Say for e.g: Can Efficiency of Destination be a measurement criteria :
> How much time does the destination takes to deliver the messages of fixed size
> ?
> How does it behave if the load increases ?
> Whether any messages are lost ?
> How does a topic with durable subscriber behave ? etc....
>
> Please let me know in case any body has any thoughts or have down a similar exercise
> as to measure the JMS performance under normal as well as peak load.
>
> Thanks in advance,
> Kumar
Similar Messages
-
How to measure the performance of sql query?
Hi Experts,
How to measure the performance, efficiency and cpu cost of a sql query?
What are all the measures available for an sql query?
How to identify i am writing optimal query?
I am using Oracle 9i...
It ll be useful for me to write efficient query....
Thanks & Regardspsram wrote:
Hi Experts,
How to measure the performance, efficiency and cpu cost of a sql query?
What are all the measures available for an sql query?
How to identify i am writing optimal query?
I am using Oracle 9i... You might want to start with a feature of SQL*Plus: The AUTOTRACE (TRACEONLY) option which executes your statement, fetches all records (if there is something to fetch) and shows you some basic statistics information, which include the number of logical I/Os performed, number of sorts etc.
This gives you an indication of the effectiveness of your statement, so that can check how many logical I/Os (and physical reads) had to be performed.
Note however that there are more things to consider, as you've already mentioned: The CPU bit is not included in these statistics, and the work performed by SQL workareas (e.g. by hash joins) is also credited only very limited (number of sorts), but e.g. it doesn't cover any writes to temporary segments due to sort or hash operations spilling to disk etc.
You can use the following approach to get a deeper understanding of the operations performed by each row source:
alter session set statistics_level=all;
alter session set timed_statistics = true;
select /* findme */ ... <your query here>
SELECT
SUBSTR(LPAD(' ',DEPTH - 1)||OPERATION||' '||OBJECT_NAME,1,40) OPERATION,
OBJECT_NAME,
CARDINALITY,
LAST_OUTPUT_ROWS,
LAST_CR_BUFFER_GETS,
LAST_DISK_READS,
LAST_DISK_WRITES,
FROM V$SQL_PLAN_STATISTICS_ALL P,
(SELECT *
FROM (SELECT *
FROM V$SQL
WHERE SQL_TEXT LIKE '%findme%'
AND SQL_TEXT NOT LIKE '%V$SQL%'
AND PARSING_USER_ID = SYS_CONTEXT('USERENV','CURRENT_USERID')
ORDER BY LAST_LOAD_TIME DESC)
WHERE ROWNUM < 2) S
WHERE S.HASH_VALUE = P.HASH_VALUE
AND S.CHILD_NUMBER = P.CHILD_NUMBER
ORDER BY ID
/Check the V$SQL_PLAN_STATISTICS_ALL view for more statistics available. In 10g there is a convenient function DBMS_XPLAN.DISPLAY_CURSOR which can show this information with a single call, but in 9i you need to do it yourself.
Note that "statistics_level=all" adds a significant overhead to the processing, so use with care and only when required:
http://jonathanlewis.wordpress.com/2007/11/25/gather_plan_statistics/
http://jonathanlewis.wordpress.com/2007/04/26/heisenberg/
Regards,
Randolf
Oracle related stuff blog:
http://oracle-randolf.blogspot.com/
SQLTools++ for Oracle (Open source Oracle GUI for Windows):
http://www.sqltools-plusplus.org:7676/
http://sourceforge.net/projects/sqlt-pp/ -
Measuring the performance of Networking code
Lately I've had renewed interest in Java networking, and been doing some reading on various ways of optimizing networking code.
But then it hit me.
I dont know any way of benchmarking IO/Networking code. To take a simple example, how exactly am I supposed to know if read(buf,i,len) is more efficient than read() ? or how do I know the performance difference between setting sendBufferSize 8k and 32k? etc
1)
When people say "this networking code is faster than that", I assume they are referring to latency. Correct? Obviously these claims need to be verifiable. How do they do that?
2)
I am aware of Java profilers ( http://java-source.net/open-source/profilers), but most of them measure stuff like CPU, memory, heap, etc - I cant seem to find any profiler that measures Networking code. Should I be looking at OS/System level tools? If so, which ones?
I dont want to make the cardinal sin of blindly optimizing because "people say so". I want to measure the performance and see it with my own eyes.
Appreciate the assistance.
Edited by: GizmoC on Apr 23, 2008 11:53 PMIf you're not prepared to assume they know what they're talking about, why do you assume that you know what they're talking about?Ok, so what criteria determine if a certain piece of "networking code" is better/faster than another? My guess is: latency, CPU usage, memory usage - that's all I can think of. Anyway, I think we are derailing here.
The rest of your problem is trivial. All you have to do is time a large download under the various conditions of interest.1)
hmm.. well for my purpose I am mainly interested in latency. I am writing a SOCKS server which is currently encapsulating multiplayer game data. Currently I pay an apprx 100 latency overhead - I dont understand why.. considering both the SOCKS client (my game) and SOCKS server are localhost. And I dont think merely reading a few bytes of SOCKS header information can potentially cause such an overhead.
2)
Let's say I make certain changes to my networking code which results in a slightly faster download - however can I assume that this will also mean lower latency while gaming? Game traffic is extremely sporadic, unlike a regular HTTP download which is a continuous stream of bytes.
3)
"timing a large download" implies that I am using some kind of external mechanism to test my networking performance. Though this sounds like a pragmatic solution, I think there ought to be a formal finely grained test harness that tests networking performance in Java, no? -
I have a requirement to scale very large volumes of JMS messages (300+ million messages per day). I am concerned that the JMS server will become a bottleneck in the cluster. Is it possible to add additional JMS servers and use distributed destinations to load balance JMS traffic and maintain transparency to the JMS consumers/producers?
Yes, distributed destinations are transparent. They appear as a single logical destination to the application. For messaging applications, other major items may also impact performance/scalability. Working on these sometimes reduces the need for distributed destinations (tuning, batching, WL version, etc.)
Tom -
I wonder if someone could clear this up for me, JMS support the following architecture
JMS Clients (Which can be either a JMS Producer or a JMS Consumer)
JMS Provider (which provides the destinations for JMS Clients to send/recieve
messages)
In the case of WLS 7.0 is the actual JMS Server the JMS Provider?
regards
Barry
In WebLogic:
JMS destinations are hosted on a JMS server (as I wrote below)
A WL server may host zero or more JMS servers (as I wrote below)
A WL cluster may host one or more WL servers, where all
share a replicated JNDI context
JMS client connections are hosted on a WL server within
the same WL cluster as their JMS server,
where the connection host is determined
round-robin style according to the configured
targets for the connection factory they are using.
As per the JMS API, JMS clients access destinations
via resources obtained from their JMS connection
(resources include consumers and producers),
the JMS connection routes all client requests
to these resources through
its WL server host to the JMS server
which hosts the destination (which may
be on another WL server within the cluster)
You will find this information in the JMS Programmer's Guide,
as well as most books that cover WL JMS, as well as
the "JMS Performance Guide" white-paper.
Tom
Barry Myles wrote:
> What then is a JMS Provider? and how does it map to the architecture and components
> found in a WLS?!?!?!?!
>
> I know how JMS Consumers and Producers fit into this but am still in the dark
> as to what component provides the actual JMS service? I thought that by connecting
> to a JMS Server and starting a JMS session you were in-effect being provided with
> a JMS service by the server?
>
>
> Tom Barnes <[email protected].bea.com>
> wrote:
>
>>WL JMS clients can run stand-alone or on a WL server. That
>>WL server can host zero or more JMS servers.
>>
>>JMS Provider is a loose term. It might be most clear
>>to say that the WL cluster is the JMS "destination" provider,
>>and that WL JMS destinations are hosted on one or more
>>JMS servers within that cluster. I put it this way
>>because destination's are location transparent
>>within the WL cluster JNDI context, so a client need only
>>locate any server within the cluster to communicate with
>>a destination, and doesn't ever know the actual physical server
>>within the cluster that hosts the destination.
>>
>>Barry Myles wrote:
>>
>>>I wonder if someone could clear this up for me, JMS support the following
>>
>>architecture
>>
>>>
>>>JMS Clients (Which can be either a JMS Producer or a JMS Consumer)
>>>
>>>JMS Provider (which provides the destinations for JMS Clients to send/recieve
>>>messages)
>>>
>>>In the case of WLS 7.0 is the actual JMS Server the JMS Provider?
>>>
>>>regards
>>>Barry
>>
>
-
How to measure the performance of a SQL query?
Hello,
I want to measure the performance of a group of SQL queries to compare them, but i don't know how to do it.
Is there any application to do it?
Thanks.You can use STATSPACK (in 10g its called as AWR - Automatic Workload Repository)
Statspack -> A set of SQL, PL/SQL, and SQL*Plus scripts that allow the collection, automation, storage, and viewing of performance data. This feature has been replaced by the Automatic Workload Repository.
Automatic Workload Repository - Collects, processes, and maintains performance statistics for problem detection and self-tuning purposes
Oracle Database Performance Tuning Guide - Automatic Workload Repository
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14211/autostat.htm#PFGRF02601
or
you can use EXPLAIN PLAN
EXPLAIN PLAN -> A SQL statement that enables examination of the execution plan chosen by the optimizer for DML statements. EXPLAIN PLAN causes the optimizer to choose an execution plan and then to put data describing the plan into a database table.
Oracle Database Performance Tuning Guide - Using EXPLAIN PLAN
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14211/ex_plan.htm#PFGRF009
Oracle Database SQL Reference - EXPLAIN PLAN
http://download-east.oracle.com/docs/cd/B19306_01/server.102/b14200/statements_9010.htm#sthref8881 -
Update: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
Hi,
I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
Following
http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
If I save the subdeployment after setting it during the queue create - it is erased
<sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
Before:
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
<uniform-distributed-queue name="HousekeeperControlQueue">
<sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
<jndi-name>jms/HousekeeperControlQueue</jndi-name>
</uniform-distributed-queue>
</weblogic-jms>
After:
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
<uniform-distributed-queue name="HousekeeperControlQueue">
<jndi-name>jms/HousekeeperControlQueue</jndi-name>
</uniform-distributed-queue>
</weblogic-jms>
Workaround:
- upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
- also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
- you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
thank you
/michaelUpdate: verified in a 12.1.1.0 (JDK6) cluster - bug does not occur there.
Hi,
I have been migrating an 10.3.5.0 server to WebLogic 12.1.2.0 and have been unable to keep the subdeployment dropdown populated in the subdeployment tab of a uniform distributed queue when the subdeployment targets more than 1 JMS Server.
If I uncheck one of the servers - I work fine - however I would like to target all JMS Servers in the cluster - this used to work fine in 10.3.5.0
Following
http://docs.oracle.com/cd/E24329_01/apirefs.1211/e24401/taskhelp/jms_modules/distributed_queues/CreateUniformDistributedQueues.html
I am able to create a new queue no problem against the multiple-server subdeployment - but when I navigate to the subdeployment dropdown - the target is erased with "None".
If I save the subdeployment after setting it during the queue create - it is erased
<sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
Before:
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
<uniform-distributed-queue name="HousekeeperControlQueue">
<sub-deployment-name>MW-JMS-SubDeployment</sub-deployment-name>
<jndi-name>jms/HousekeeperControlQueue</jndi-name>
</uniform-distributed-queue>
</weblogic-jms>
After:
<weblogic-jms xmlns="http://xmlns.oracle.com/weblogic/weblogic-jms" xmlns:sec="http://xmlns.oracle.com/weblogic/security" xmlns:wls="http://xmlns.oracle.com/weblogic/security/wls" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.oracle.com/weblogic/weblogic-jms http://xmlns.oracle.com/weblogic/weblogic-jms/1.1/weblogic-jms.xsd">
<uniform-distributed-queue name="HousekeeperControlQueue">
<jndi-name>jms/HousekeeperControlQueue</jndi-name>
</uniform-distributed-queue>
</weblogic-jms>
Workaround:
- upon server startup the config is valid - just dont re-save the jms module or the subdeployment target will be erases
- also when creating a new subdeployment you will be able to select it from a jms distributed queue in the advanced targeting section even if it contains expected multiple JMS servers
- you will not however be able to edit the JMS queue once created - if there is any change to targeting - recreating the queue is required
thank you
/michael -
How do you span a jta usertransaction across multiple jms servers?
I have an ejb that connects to multiple jms servers (non-clustered) and
retrieves messages. Those messages are concatenated together and placed on
another jms queue. Is it possible to do all of this inside of one
transaction? I am having trouble pulling this off.
Sure, you can do this. Assuming you're using WLS JMS, you have to make sure that for all the JMS servers you're talking to, you use a connection factory with the "XA Connection Factory Enabled" flag set. You also need to make sure that you use JTA to start a transaction before retrieving the first message, and commit it after you're done with the final send.
-
Measuring the Performance of Web Dynpro Applications
I am trying to measure the performance of the ESS MSS WebDynpro applications. I am following the instructions at http://help.sap.com/saphelp_nw04/helpdata/en/bb/fdc4402418742ae10000000a155106/frameset.htm
but no performance data shows up for the ESS MSS WebDynpro components.
has anyone able to see any performance data for the ESS MSS WebDynpro components?
Thanks,
TiberiuThanks Armin,
You are absolutely right.I have displayed all the 150 rows in the table on loading.This is the requirement which I should do for my Customer.(Displaying all rows)
If I give 40 rows to display,it takes 35 seconds to upload the file.But it takes 30 seconds to go to next page of table ,when I click Page Next property of Table.
Is there any way to reduce this display time.
Regards,
Dan.
Edited by: Dan on Mar 13, 2008 12:16 PM -
How can i use Bi-Technical Content is used for measuring the performance of
Hi
recenetly i implemented the BI7.0 for one client. I want to know how to use 'BI Administraction Cockpit,.
Actual what technical content does ???
And how can i use technical content or statistics for measuring the performance of my queries. Please let me know
kumarHi Ravi,
BI Admin Cockpit is enhancement of BW Statistics.
http://help.sap.com/saphelp_nw2004s/helpdata/en/44/08a75d19e32d2fe10000000a11466f/frameset.htm
Check this thread also:
BI Statistics comparision with the old
Regarding the performance check the link below.
Re: Query - Performance
http://help.sap.com/saphelp_nw2004s/helpdata/en/43/15c54048035a39e10000000a422035/frameset.htm
Regards,
Anil -
API to list Uniform Distributed Queue JMS Servers
Hi all,
I posted this in the SOA suite forum but this one may be better.
I am writing a POJO webservice to synchronously read a message from a JMS queue. Unfortunately the queue is actually a uniform distributed queue so I actually need to look for messages in each of the local queues.
I have written code to find the JNDI names of the local queues as follows:
StringArray DistribMemberNames = new StringArray();
String ttt;
ttt = JMSHelper.uddMemberJNDIName("IMPJMSServer_1", part1.getJNDIName());
DistribMemberNames.add(ttt);
ttt = JMSHelper.uddMemberJNDIName("IMPJMSServer_2", part1.getJNDIName());
DistribMemberNames.add(ttt);
This works fine but I have hard coded the names of the JMS Servers and this is bad practice. I need to find a method where I can take the JNDI name of the uniform distributed queue and find all the JMSServer names. I have been looking for days but I can’t find anywhere in the API documentation that describes this.
Does anyone have any suggestions?
Thanks
Robert
(I am using 11.1.1.5 on a clustered weblogic enviroment)Hi,
I have managed to answer this question myself.
I needed to create a context:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
m_jndiContext = new InitialContext(env);
Look up the main runtime mbean
MBeanServer server;
server = (MBeanServer) m_jndiContext.lookup("java:comp/env/jmx/runtime");
Navigate down the domain configuration to get the JMSServers
ObjectName service = null;
ObjectName domainConfiguration = null;
ObjectName[] jmsServers = null;
service = new ObjectName(
"com.bea:Name=RuntimeService,"
+ "Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean");
domainConfiguration = (ObjectName) server.getAttribute(service, "DomainConfiguration");
jmsServers = (ObjectName[]) server.getAttribute(domainConfiguration, "JMSServers");
For each server you can retrive it's name:
for (int i = 0; i < length_serverRT; i++) {
String jmsServerName = "";
jmsServerName = (String) server.getAttribute(serverRT, "Name");
I had to do some additional filtering for my own requirements
Robert -
How to measure the Performance of an XI system and also an XI Interface?
What are all the ways we can tune an XI system for an optimal performance? i.e what are all the areas we have to look into for a superior performance?Pete,
You can check the start time and end time of the message in sxmb_moni and can find out how much time it takes for the interface to execute.
Go to RWB and then click on performance monitoring. You can get for each interface individually or for the whole.
Also go thorugh this documents:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/489f5844-0c01-0010-79be-acc3b52250fd
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/defd5544-0c01-0010-ba88-fd38caee02f7?prtmode=navigate
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70ada5ef-0201-0010-1f8b-c935e444b0ad
/people/prasad.illapani/blog/2007/04/27/performance-tuning-checks-in-sap-exchange-infrastructurexi-part-iii
http://help.sap.com/saphelp_nw04/helpdata/en/9e/6921e784677d4591053564a8b95e7d/frameset.htm
---Satish -
Can BEA JMS C APIs be used to communicate with other JMS servers?
Hello,
Can BEA JMS C APIs be used to communicate with other JMS servers?
If yes, is it enough to download, compile the JMS C APIs, and link the C applications to the libraries (shared or static) produced?
If not, can you point me to an open source framework that can be used to enable C applications to communicate with JMS servers?
I have HP-UX server that has both C and Java compilers (Java 1.5).The JMS C client is a pre-compiled library - we don't supply the source - so C applications link to it. If I recall correctly, there is an HP version. The C client library is actually thin layer that uses JNI to directly invoke a Java JMS client running in an embedded JVM.
The library might work with other vendor's Java JMS clients, but BEA does not officially support this usage.
Tom -
hi
I am working on WLS 8.1. I developed a script using weblogic.admin to get the information about all the JMS servers in a cluster. It was working fine. But now as I configured paging and distributed queues to my JMS servers, that script is only getting the information of the JMS servers which dont have these added features with the same. I appreciate if somebody can tell me the reason those servers are not active.
thanks in advanceHi,
It sounds like you may have a generic mbean problem and not something unique to JMS. The "management" newsgroup may be able to help if you post more info there.
Meanwhile, in case you're unaware, there's a simple JMS stat dump sample program for 8.1 called "JMSStats.java" available on dev2dev. Search code-share for jmstats, or one of these links might work:
https://codesamples.projects.dev2dev.bea.com/servlets/ScarabDownload/resultpos/-1/nbrresults/0/remcurreport/true/template/ViewAttachment.vm/attachid/311/filename/JMSStats.zip
https://codesamples.projects.dev2dev.bea.com/servlets/Scarab/remcurreport/true/template/ViewIssue.vm/id/S52/eventsubmit_dosetissueview/foo/resultpos/-1/nbrresults/0/action/ViewIssue/tab/4/readonly/false
Tom -
Connecting JMS servers together into a cluster
Hi
I am just wondering if anyone tried (or is it even possible) to connect JMS servers
from different providers (say BEA and Sonic) together in a cluster of some sorts?
Thanks
Integrating foreign vendors with WL has come up many times in this newsgroup.
Search for "MQ" (MQSeries) and "Sonic".
Tom
Alex wrote:
> Hi
>
> I am just wondering if anyone tried (or is it even possible) to connect JMS servers
> from different providers (say BEA and Sonic) together in a cluster of some sorts?
>
> Thanks
Maybe you are looking for
-
Supress default logon box after invalid logon via SSO
Hi, We are using SSO to authenticate to the database. If the SSO authenication fails, Oracle Forms automatically brings up the default logon box. For example - A user registers and their userid and password are stored in the OID. The user's password
-
Error while activating transfer rules
Transfer method 'TRFC with PSA' is not supported by the source system Message no. RSAR508 Diagnosis The PSA transfer method is used to transfer data from source system GBQ480 to transfer structure 0ASSET_ATTR_G4. Source system GBQ480 does not support
-
II'm trying to view ipad content on tv using a composite cable but it doesn't seem to connect. Any help gratefully received
-
Browser showing Compressor as Apple ProRes 422.
I am working with HD clips from a Canon using AVCHD codec so I am wondering why my Browser, Compressor column shows Apple ProRes 422. Keep trying to find something in the manual or online video tutorial but no luck. Does this have something to do wit
-
Exception Handling for Array Binding
Hi 1) I am using a Stored Procedure. I am using array binding and if i am sending an array of count 10 to be inserted in a table and only 9 got inserted,i deliberatly inserted one errorneous record in array, the count returned by ExecuteNonQuery() is