I am facing a big problem, when i hit my domino server over the internet using Java corba API, I am able to get the response but this is taking so much time. Is there any performance tuning option inside the domino admin to set or some programmatically trick should be done.
In my code, when user sees the login screen, I am calling login method (Creating session object but i m not recycling it) and creating a session and check the login authentication. Once suceessful login, user can see the contacts, calendar and tasks on the browser but when i hit on the contacts then it is taking so much time. at this time i m calling my getContacts() method, here I have written all the login to retrieve the contacts documents, here i am recycling all the domino’s object (Document object).
With this code I am getting response very late. Could you please tell me what all the reasons for this.
Or any alternative to improve the performance. I am running domino 6.0 on Windows 2000 and running my application on linux.
Try to reduce number of contacts to 10 and see if it’s looping through docs which takes time or if it’s something else.Maybe you can use session.Evaluate and return result of dblookup/dbcolumn.
You can post your getContacts() method here if you want.
But the problem is that if i run the same code in the local network, it is running very fast but in case of WAN/Internet it is taking time.
I cant set that contact setting to 20 bcoz it will be very less for one screen of desktop. Under my getContact() method
getContact() {
List l1 = new LinkedList();
try {
String newFormula = "(Form = \"Person\")"; // this is the search formula for all contacts.
DocumentCollection dc = mailDatabase.search(newFormula); // mailDatabase is of type Database.
total = dc.getCount();
int last = first + count;
Document doc=null;
for (int j = first+1; (j <= last) && (j <= total); j++) {
doc = dc.getNthDocument(j);
l1.add(getItem(doc.getUniversalID()) ) ; //getItem(String id) method takes care of showing the list of contacts on the screen. you can see the code below for getItem().
}
doc.recycle();
dc.recycle();
I think it’s mailDatabase.search which takes so long time.Put “System.out.println(System.currentTimeMillis);” before and after mailDatabase.search to see how long it takes. Put it also after doc = dc.getNthDocument(j) to see if the problem is in the loop.
mailDatabase.getDocumentByUNID(id) can also cause a problem. You should also check how long it takes to initialise NotesSession to server (NotesFactory.createSession). Just to be sure, check that firewall doesn’t slow down the traffic.
Depending on the design of the application and server load, you can pre-cache needed documents in a servlet to allow faster lookups.