IBMPKCS11Impl Provider Restrictions

Some of the restrictions for the 1.4.2 version of the code do not hold in 5.0 or later, if a configuration file is being used for initialization. If a 1.4.2 initialization mode is being used, this causes the last initialization of a IBMPKCS11Impl provider to determines what all IBMPKCS11Impl provider objects named IBMPKCS11Impl support. A good example of this is when IBMPKCS11Impl is already in the provider list and an application initializes and than adds programatically a new IBMPKCS11Impl provider to the provider list. When the provider list is accessed java will initialize the provider object that was originally in the provider list from java.security file. This will cause an application to see the following exception:
No such alg : java.security.NoSuchAlgorithmException: no such algorithm: xxxxx for provider IBMPKCS11Impl

In 5.0 or later, the provider does contain multiple thread serialization code. Therefore, the applications no longer have to worry about this. However, logical units of work will need to be spread across providers.