Disabling a package

Does disabling a package remove that package from Integration Server’s memory and frees up some space? Please confirm.

Raghu,

Packages are not stored in the IS memory and on the other hand disabling the package will definitely improve the server startup time as it will load only enabled packages.

Do you have a service in that package which is stuck and you want to stop its execution?
I see three possibilities,

  1. Restart the IS.
  2. Kill the service using the Kill thread service which is available on the internet (not recommended).
  3. Reload the package.

Cheers,
Akshith

“Packages are not stored in the IS memory and on the other hand disabling the package will definitely improve the server startup time as it will load only enabled packages.”

Akshith, if not in memory, where is code stored during package load?

Rob, stored in the sense i am talking about they are stored on the disk and loaded during the server startup based on the manifest file (enabled property) of the package.

From the above sentence, i understood that the code is literally being stored on the IS memory and not on Disk or may be i am missing something here.

Cheers,
Akshith

Akshith, your post stated “Packages are not stored in the IS memory…” in response to raghuag’s question “Does disabling a package remove that package from Integration Server’s memory…”

I was hoping you could clarify what you meant.

I guess I should have just answered raghuag’s question: yes, disabling a package removes that package (the services, etc.) from IS memory.

Reloading a package will not kill any threads that are using services in that package. It may cause a failure at some point if the thread is making progress, but if it is hung on some service step (e.g. waiting for an HTTP response) the thread will not be freed. At least that has been what I’ve experienced.

its right, disabling package frees up IS memory and not kill any threads that are using services in that package, but be careful of packages dependencies while restarting IS.
The disabled package, could disable the all dependent packages

What i wanted to say was, packages are stored on the disk but loaded into memory (is this same as storing in memory?) during the start of the server (based on the manifest file property). Please correct me if i am wrong.

I could be wrong but AFAIK the IS has it own custom classloader, when you load package the IS loader “loads” all referenced classes from the package, and when you disable a package it does a GC on them.

The less packages you have enabled, the faster IS will load. Loading a jar/class file in the classloader is time consuming.

However if you have resources not used, even if they are loaded, the GC will remove them from memory and keep references to load them again if needed.

When unloading the package IS will perform a GC and if they were on memory you will see a mem decrease, but if they were not used you won’t notice.

In summary the wording “stored in memory” is not fully correct, is better to say “they are made available in the classloader”.