text: **Application design**
  Modern computer systems contain multiple cores. They can perform multithreaded 
  processing. Modern computer system operating systems allow parallelism in operations. To 
  take advantage of these hardware and software features, an application must be designed so 
  that it can run in parallel at multiple levels. Content Manager OnDemand can take advantage 
  of both. 
  
  At the process level, the Content Manager OnDemand server runs multiple processes: 
  
  (cid:2) A library server 
  (cid:2) One or more object servers 
  (cid:2) One or more load jobs 
  (cid:2) The expiration process 
  
  At the thread level: 
  
  (cid:2) The library server is designed so that it is multithreaded and it can service multiple 
  
  incoming data requests on different threads and perform multiple database queries in 
  parallel. 
  
  (cid:2) The object server is also multithreaded so that multiple users can concurrently retrieve 
  data from the Content Manager OnDemand archive. 
  
  **Parallel archive access**
  When you access the Tivoli Storage Manager or object access method (OAM) archives, a 
  store or retrieve request is sent to Archive Storage Manager (ASM). ASM then either stores or 
  retrieves the data and returns the result to the Content Manager OnDemand server. If this 
  process is conducted in a serial fashion, the archive storage access mechanism becomes a 
  bottleneck at high transaction rates. To overcome this potential bottleneck, Content Manager 
  OnDemand implements connection pooling to the storage archives. 