cancel
Showing results for 
Search instead for 
Did you mean: 

Crystal Report Server Embedded 2008 SP 3

Former Member
0 Kudos

Hi, i would like to know if the runtime / object model supports multithreading?

Is the runtime com based or managed?

Thanks in advance.

Accepted Solutions (0)

Answers (1)

Answers (1)

former_member93238
Product and Topic Expert
Product and Topic Expert
0 Kudos

Hi mithal,

Question 1)

First we must define strong and weak thread safety:

Strong thread safety could mean that any object instance of a given class is usable simultaneously from multiple threads, including using mutable operations.

Weak thread safety is the normal thread safety you get for objects when you design them without static shared state, or you take care to lock this state. It is also the type of thread safety that applies to non-member functions (they can be called by any number of threads, as long as all the arguments are either not shared or passed by value) as long as you don't access any global state in a thread-unsafe way. This kind of thread safety generally allows simultaneous reading of the same object instance on multiple threads, and allows the simultaneous reading and writing of distinct object instances on multiple threads, but doesn't allow simultaneous writing or reading and writing of the same object on multiple threads without locking.

Even less thread unsafe objects potentially cannot even be read across multiple threads, or potentially even have issues with using district objects across threads without additional synchronization.

Generally, BusinessObjects SDK classes and functions obey weak thread safety. There are exceptions, however. For example, different InfoObjects which originated from the same session cannot necessary be used in a thread-safe way on separate threads, because each object has a hidden reference to originating session, which isn't thread safe. So even though you don't think you are doing any cross-thread sharing, the implementation may be doing it for you.

The bottom line is, you can use multi-threading if you keep in mind the points made above, and donu2019t exceed the maximum on-demand processing load of your BusinessObjects environment. However, we generally encourage the use of the BusinessObjects scheduling capabilities, since multiple reports can be scheduled within a single InfoStore schedule request; which is our defined way of batch processing reports.

Question 2)

It's Managed and not COM.

Sorry for the lengthy answer in 1) it was necessary.

Good luck.

Moussa Ould Beziou