Launching busobj.exe processes on the server

We have a few batch files which kick off .rep files through Desktop Intelligence.

Content of the batch file;

"D:\Business Objects\BusinessObjects Enterprise 11.5\win32_x86\busobj.exe" -User "loginid" -Pass "password" -System "Server_Name" -Auth "enterprise" "E:\Business Objects Documents\Production\Macro Files\REPORT_NAME.rep"

We have scheduled these batch files through Windows Scheduler so using an account with an administrator rights on the server. If the account is logged on it has no problem running more than 2 batch files simultaneously - I can see more than busobj.exe processes in the task manager.

But when the account is logged off, it can only run upto 2 busobj.exe processes at one time. I’ve looked at all XI processes and there was no parameter to restrict this to 2 processes - plus this should not affect the batch files from running as it is executing the full client report outstide Infoview.

Has anyone come across this?


ycha :australia: (BOB member since 2006-06-08)

Hi Ycha,

I had faced this exact same problem, however with BO 6.5 SP2.
Even I was trying to schedule more than one busobj65.exe thru Windows scheduler, however, all used to work well when the user who has scheduled it was logged on.
But when the user logs off, only ONE busobj65.exe used to run at a time, sequentially. The parallelism that we wanted was never achiever.
We had raised a case with BO and they said “Business Objects does not support such a use of their application. Helping in this case is outside their scope.”

Later on we switched to using BO’s own Broadcast Agent…

Cheers,
Buddy.


Buddy :india: (BOB member since 2006-08-04)

Thanks for sharing the details…

I’m glad I was not the only one with this problem.

We did overcome this issue (i should’ve let everyone know earlier) by creating “services” to kick off busobj.exe, strange enough it worked.

and within “services” you can specify the time interval. it is a little pain to set it up but it’s been working ever since…


ycha :australia: (BOB member since 2006-06-08)

Thats brilliant Ycha…I had never thought of it as an option. This may prove to be a solution to the problem that we are facing in XI migration now. Thanks for sharing this. I would give it a try and consult you if necessary. Hope you dont mind. Thanks again.

Cheers,
Buddy.


Buddy :india: (BOB member since 2006-08-04)

yeah. the down side is that you have all these services running continuously (although it does not consume memory that much)

create a new account to run these as it’ll be handy for the maintenance purposes (we had 10 services on each server )

another down side will be applying patches and service packs. each time you install this, you’ll have to login to deski and uncheck all those tickboxes (registration, new report wizard etc)


ycha :australia: (BOB member since 2006-06-08)

Dear Ycha,

I am now trying to achieve the same thing by scheduling .bat files thru Windows Scheduler to call several busobj.exe on the server in parallel. However, as you shared in the very first post of this topic, I can’t get to run more than 2 busobj.exe in parallel at a time. This is in XI 3.1 to be specific.

So I am now very much tempted to try that “creating services” option that you have suggested. I need few inputs from you.

  1. What are these services created/developed in? .Net/Java/something else?
  2. What exactly do you call/execute in the service? The busobj65.exe OR the .bat file?

Please give me some direction so that I can give it a try.
Highly appreciate your help in this.

I am already strugglin with it, please see this post

Thanks in advance!

Cheers,
Buddy!


Buddy :india: (BOB member since 2006-08-04)

hi there…
from my memory, we set up a new user/account, created windows services which was calling the busobj.exe…
(no .net/java)
so the services were listed under Control Panel -> Administrative Tools -> Services

i’ve moved on to another company early this year, so i can’t check the details for you right now… but i’ll see if i can follow this up…

if urgent shoot me an email; yhcha79@hotmail.com (apologies if listing email address is now allowed)
cheers.


ycha :australia: (BOB member since 2006-06-08)

Hello Ycha,

I highly appreciate your super-quick response mate! Thanks!
and glad to know that there’s no .NET/Java development involved in this. It makes it apparently more simple. I shall find out more about it and give it a try. This is exciting. I shall keep the thread updated.

Thanks for the e-mail I wil certainly get in touch if need be. But let me give it a try first :slight_smile:

Cheers,
Buddy!


Buddy :india: (BOB member since 2006-08-04)

:mrgreen: :blue: :mrgreen:
Ycha…you have been my saviour!! It worked…!!! :yesnod:
Though not at the first attempt.
Firstly I directly called the busobj.exe from the service and passed parameters to it by setting them in the registry. However, what I observed is, though the service used to show “up” after a reboot, the report did not use to run. i.e. no busobj.exe was seen running.
I somehow thought that this may be vaguely related to some paramter in XI, which could be similar to the parameter thats there in 6.5, which says, “Kill all busobj.exe on startup”. So as soon as the machine comes up, though the service starts and attempts to run busobj.exe, it must be getting killed because of the parameter above. (Though I dont know if such a parameter exists in XI).
So what I did is, instead of calling the busobj.exe directly from the service, I created a .bat file and called that from the service. What I do in the .bat file is, first make it go to sleep for 180 seconds (3 mins) :idea: and then I call the busobj65.exe by passing all the parameters to it.
Now when I reboot the machine (though I have to wait for 3 mins in the beginning), my busobj.exe does run fine!!!
And I could get three of them run together parallely.
In our case also we would eventually need to run 10 of them at a time in parallel on the server.
I like the idea of having a separate account that does all this, so that its easier to maintain it. I wil talk to the administrators.
I will do more rigerous testing and let you know.
But for now all you need to know is you have helped me tremendously! :smiley: I owe you for this one!

Thanks a lot!

Cheers,
Buddy!


Buddy :india: (BOB member since 2006-08-04)

That’s great to hear!!!

From what I remember, BOXI didn’t have the settings to kill busobj.exe processes. It was ‘wrapped’ with fcproc.exe (or something similar), so that you’d never see busobj.exe unless you launch it directly.

(I could be wrong, since I’ve been only doing report/universe work for the last 6 months)

And don’t forget, when new hotfixes/SPs are applied you’ll have to ‘remove’ the default settings so that everything fires up correctly…

Cheers.


ycha :australia: (BOB member since 2006-06-08)

:slight_smile:
Ok about the fcproc I need to learn more about it too, but for now I am all set.
Yes I will be careful about the Hotfixes/Patches to BO as well as Windows (they may accidentally remove my services :roll_eyes: )
Thanks for all the tips and help.
God bless you…

Cheers,
Buddy!


Buddy :india: (BOB member since 2006-08-04)

I’m encountering this exact same issue. I’m attempting to run more than 2 busobj.exe processes in a parallel fashion using the command line interface to launch reports. What I’m seeing is that when no one is logged on to the server, only two busobj.exe processes can be launched and successfully log on using the command line interface as you illustrated in your first post.

My current setup involves a windows service or scheduled task (tried both), written in C#, that executes the command as you have documented in your initial post directly. Do I understand you properly that the limitation of 2 processes at a time can be worked around simply by having the service call a batch file with that command line in it rather than issuing the command directly from the service? I’m dealing simply with Deski XIr2 sp3 installed on Windows server 2003. All my automation works precisely as intended when run interactively, the problem comes with the 2 at a time limitation that seems to be there when the service or scheduled task runs and no one is logged on (standard practice).

Please let me know any additional information you have on your work around, and if you could the purpose of your 3 minute wait in your batch file? Thanks!


Jeremy Rogers :us: (BOB member since 2003-07-01)

Hi Jeremy,

I never tried to launch busobj.exe directly from the windows service. My set up always involved windows service that calls a batch file which in turn calls the busobj.exe with username/password/report name, etc. passed to it as parameters in the batch file itself.
I have 10 such services running at a time on our Win 2k3 server and they are run in parallel successfully even when nobody is logged in.
I did not use any scripting/programming language like C# to do anything (well, I don’t know C#…I only know C & C++ :wink: ) My set up is as simple as explained above. Feel free to let me know if any of that is not clear or you have more questions/doubts about it. I am willing to help.

Coming to the 3 mins sleep… What I realized is…since I had made those services Automatic…they used to come up as soon as the server used to come up after a reboot; but at that time not necessarily the CMS is up yet 8) so my launching of busobj.exe didn’t used to succeed. That 3 mins sleep gives my CMS enough time to come up successfully after the reboot…and then my busobj.exe tries to launch itself (which now succeeds if everything else is good)

Hope this helps…


Buddy :india: (BOB member since 2006-08-04)

ycha et al,

I need help again! Our set up of launching DeskI reports with macros via Windows Services has been running fine. However, now I need to be able to KILL the process (busobj.exe) if I encounter an error.
I have managed to catch the error text in the macro code (Err.Description) however, I am not able to quit the application.
I have tried these things,


If Err.Description = "Error Message Description" Then
        Application.Quit
End If

If Err.Description = "Error Message Description" Then
        busobj.Application.Quit
End If

Both the above things work in interactive mode, i.e. when I am manually running the macro by hitting F8. The busobj session that is processing the macro closes itself successfully (that is what I want!)
However, when I run it via my regular windows service, the executable keeps running. It does not quit/kill itself when that particular error is encountered.
I have confirmed that the control does enter that IF block, so it must be executing the .quit statement. But it doesn’t kill itself.

Any ideas?

Thanks in advance,
Buddy!


Buddy :india: (BOB member since 2006-08-04)