If you're looking for some tips on using DIIOP with Domino, check out the DominoDIIOP page! Other stuff to appear here as and when.

Development gotchas & tips

  • Remember your recycling!
  • Don't bother recycling AgentContext? or Session - see Julian's site for more on that
  • When using ViewEntry? objects, remember to recycle the underlying Document object (even if you don't actually use / instantiate them. Bizarre I know)
  • Use java.lang.Runtime methods to test for leaks, e.g.:
  • Runtime.getRuntime().freeMemory();

    Some useful blog posts

    A 'stub' agent with ensuing discussion (recycle() etc.): Some useful Domino Java code?

    Debugging agent threads / memory: Are your threads leaking?

    notes.ini variables

    Size of each Java thread's execution stack in bytes

    Where XXX = a list of class locations, jar file locations, etc. Separate with commas on Windoze, with a colon on UNIX platforms. This allows code-sharing across agents and applets, and can conceivably lead to performance boosts (see related page in this wiki)

    Enables(1) or disables(0) verbose logging from the JVM

    Enables(1) or disables(0) verbose logging from the JVM with regards memory usage

    Enables default Java JIT compiler; 1 = normal loading of default JIT, 0=disables it altogether.

    Enables a SPECIFIED JIT. Use this to load a JIT other than the default

    Where XXX = number of bytes. These settings specify the maximum / minimum sizes the Java heap can reach. You can use units if you don't want to figure out the number of bytes in a MB ;o) e.g. "64 MB" is the same as "67108864"

    Prevents (1) or allows (0) the JVM from running garbage collection in a separate background thread

    Prevents garbage collection on classes, therefore protecting static fields