Showing posts with label processing. Show all posts
Showing posts with label processing. Show all posts

Sunday, March 11, 2012

Activated stores procedure and Batch Processing

Hi There

2 Questions :

1. Almost in every SB example you will see this sql :

BEGIN TRANSACTION

WAITFOR (

RECEIVE TOP (1)

@.MessageType = message_type_name,

@.Message = message_body

FROM [Queue1]

WHERE conversation_handle = @.ConversationHandle

), timeout 5000;

If this sql in an activated sp do you really have to have the waitfor ? Since the sp will only be fired if there is a message on the queue ?

2. It is reccomended that for high volume SB apps you do not do a top(1) receive but process batches. Exactly what is the best practice to do this. Receive a batch into a table variable and then what ? Process through it with a cursor ? That is not very efficient either, i would just like some insight into batch queue processing as everywhere i have seen uses top (1) from the queue ?

Thanx

Hi Dietz,

1. The purpose of the WAITFOR is to have the procedure linger a few seconds when it empties the queue, in hope a new message comes in and gets processed. W/o this technique, the procedure might be deactivated just to be activated immedeatly by a new message.

2. To process a batch of messages, the best approach is indeed to RECEIVE into a @.table variable and process a cursor over the @.table variable. A cursor over a @.table variable is quite efficient, specially if the cursor is kept open between RECEIVEs.
One thing to keep in mind is the particular message pattern expected by the service. Remeber that RECEIVE only returns messages for one particular conversation_group at a time, which in most cases equates one conversation. If the typical message pattern is request-reply, then the RECEIVE will mostly return only 1 message at a time anyway, so using the TOP(1) might be simpler and more efficient.
My recommendation is to actually test and measure the performance, because it depends a lot with the message flow pattern.

HTH,
~ Remus

|||

Hi Remus

Initially it seems our app will only send individual messages and the target simpy receive and end conversation, and not have long conversatons or conversation groups spanning many dailogs, so in that case would you agree a top(1) should work fine ? So processing batches is only more efficient if you have large conversation groups , which is not true in our case where it is just a single conversation.

Thanx

Sunday, February 12, 2012

Accessing processing information

Hi,

We need to access some of the processing information that are displayed when processing from BIDS. Is there any way to access this info send it to the event viewer (or anywhere) when processing a cube from the command-line?

I would like to see:

    Processing start and end date

    Error information if any

    what are the dimensions/cubes processed

    How many records were processed

TIA,

Aiwa

BIDS, SSMS and SQL Profiler establish a trace connection to the server and the server sends notifications.

Is your goal to write a program, which sends processing request and needs to capture the processing events or you already have some program and it needs to listen what the server does in response to that program's request?|||

I am hoping that there is an out of the box solution for this. We follow closely our DW processing and we would like to apply the same follo-up on our cube generation process.

We have developed some tools to do the DW generation follow-up but if an out of the box features exist to do that with AS2005 we would be more than willing to use it. Best case scenario would be to be able to capture processing events in the event viewer.

Thanks,

Aiwa

|||By "event viewer" do you mean SQL Profiler? When it is running it captures the trace events from all the clients you have. You can specify filters on the events.|||

Take a look at the ascmd utility that gives you ability to send processing commands and capture processing events in a log file.

Edward.
--
This posting is provided "AS IS" with no warranties, and confers no rights.

Thursday, February 9, 2012

Accessing Oracle data from Reporting Services 2000

I am receiving this error -

An error has occurred during report processing. (rsProcessingAborted) Get Online Help Cannot create a connection to data source 'IFSDB'. (rsErrorOpeningConnection) Get Online Help ORA-12638: Credential retrieval failed

When I attempt to run a report that accesses an Oracle database. If I sign on to the report server and run the report, it is successful. When I attempt to run it from any other workstation, I get the above error.

We are running both Oracle and SQL Server on the same server.

Particulars -

SQL Server 2000,

Oracle 9.2.0.6

Windows Server 2003

Thanks for any and all help

First, I suggest to check your Oracle client configuration file (ORA_HOME\network\admin\sqlnet.ora) and consult the Oracle documentation. Most likely you can resolve the error by changing the configuration file line

SQLNET.AUTHENTICATION_SERVICES= (NTS)
into:
SQLNET.AUTHENTICATION_SERVICES=(NONE)

If you then run into other Oracle error messages, it may be causes by insufficient file system permissions to read certain files of the Oracle client installation. See this KB article for details: http://support.microsoft.com/?kbid=870668

-- Robert