Skip to main content
ExLibris
  • Subscribe by RSS
  • Ex Libris Knowledge Center

    Cantaloupe Image Server adjustments (starting Rosetta SP 7.3)

    • Product: Rosetta 
    • Product Version: 7.3 and up

    Symptoms

    After installation of Rosetta Service Pack 7.3 or higher the Rosetta Delivery with some viewers fails. 

    You might encounter following issues:

    •  Openseadragon File Viewer might show 

    Unable to open [object Object]: HTTP 500 attempting to load TileSource

    • Universal Viewer might show a black screen while the delivered image is not shown. HTTP 404 error might be detected. 

    Cause 

    In Rosetta SP 7.3 Cantaloupe Image Server was upgraded to version 5.0.5.

    • Prior to Rosetta 7.3 - Cantaloupe Image Server is deployed by Rosetta Application as a Tomcat WAR file (webapp) and it uses default Rosetta Application port 1801 (HTTP) or port 8443 (HTTPS) for Rosetta with native SSL support enabled.

    • Starting Rosetta 7.3 - Cantaloupe Image Server is deployed as JAR file (Java Application) and it uses different port – default HTTP  port 8182 (or https port 8183 in case Cantaloupe is configured with native SSL).  

    Resolution

    Following installation of Rosetta Service Pack version 7.3 or newer, customers with Rosetta Application working behind Proxy/Load Balancer might need the following configuration:

    • Rosetta’s Administration Module → General parameter →  “cantaloupe_port”

      • For load balanced environments - configure with load balanced Delivery port (HTTP port 80, or HTTPS port 443).
        Typically this would be the value of “load.balancer.del.port” defined in Rosetta’s “global.properties” file.

      • In case Rosetta Delivery is not configured behind load balancer/proxy – Configure with local Cantaloupe port (HTTP port 8182 or HTTPS port 8183, as defined in ‘cantaloupe.properties‘).

      • Note: to apply changes to “cantaloupe_port” General Parameter, Rosetta Application restart is required

    • Clear cantaloupe cache. To prevent any issues, it is advisable to clear IIIF cache folder in $op_dir/tmp/delivery/IIIFViewerPreProcessor/files

    • Adjust load balancer/proxy configuration – some typical examples

    Topology characteristic

    SSL configuration

    What to check

    All in one server with without load balancer

    • Non secured with SSL

    • Rosetta application servers configured on default port 1801

    • Cantaloupe configured on port 8182

    • Allow port 8182 on firewall

    • Clean cantaloupe cache folder

    Single server environment with Rosetta configured with native SSL or multiple servers with Rosetta configured with native SSL without external load balancer/proxy

    • Rosetta application configured with native SSL on port 8443

    • Cantaloupe configured in 8183

     

    • Allow port 8183 on firewall

    • Configure cantaloupe.properties file with port 8183 and link java key store file and password

    • Adjust the Rosetta Global parameters cantaloupe_port to 8183

    • Clean cantaloupe cache folder

    Environment with multiple Rosetta application servers with external load balancer/proxy configured with SSL offloading. 

    • Rosetta application servers configured on default port 1801

    • Cantaloupe configured on port 8182

    • External load balancer with SSL offloading

    • Adjust the Rosetta Global parameters cantaloupe_port to 443

    • Continue balancing Rosetta application on port 1801

    • Add load balancer/proxy rules for Cantaloupe on port 8182 

    • Setup Load balancer/Proxy to redirect any
      "<LB/Proxy Domain>:<LB/Proxy Port>/iiif/"
      requests to
      "<load.balancer.del.host>:8182/iiif/"
      for IIIF Delivery to work as expected.

    * The 'load.balancer.del.host' can be found in Rosetta 'global.propeties' configuration file, by running (SSH to Rosetta application server as 'dps' Unix user):
    grep -i load.balancer.del.host $dps_system/conf/global.properties

    • Clean cantaloupe cache folder

    • $dps_dev/cantaloupe/cantaloupe.properties file 

      • Out-of-the-box Cantaloupe runs using port 8182 (HTTP mode), in case you wish to run Cantaloupe with HTTPS mode on port 8183 (or a different port) adjust this file as follows and restart Rosetta Application.

    # !! Configures the HTTP server. (Standalone mode only.)

    http.enabled = false

    http.host = 0.0.0.0

    http.port = 8182

     

    # !! Configures the HTTPS server. (Standalone mode only.)

    https.enabled = true

    https.host = 0.0.0.0

    https.port = 8183

     

    # !! Available values are `JKS` and `PKCS12`. (Standalone mode only.)

    https.key_store_type = JKS

    https.key_store_password = password

    https.key_store_path = /exlibris/dps/.keystore

    https.key_password =

     

    Notes

    • Cantaloupe Image Sever is restarted with Rosetta application using commands like “dps_start” or “dps_restart”.

    • To check if Cantaloupe Image Sever is running please use following commands: 

      • ps -ef | grep -i cantaloupe (to see full process parameters)

    • Cantaloupe can be also stopped and started independently of Rosetta application using following commands:

    To stop Cantaloupe

    bash -c "kill -9 `ps -ef | grep cantaloupe | grep -v grep | grep dps | awk '{print $2}'` &> /dev/null"

    To start Cantaloupe

    bash -c "nohup java -Dcantaloupe.config=$dps_dev/cantaloupe/cantaloupe.properties -Xmx2g -jar $dps_dev/cantaloupe/cantaloupe.jar >/dev/null 2>&1 &"

    • We recommend not to balance or enable access to URL of the Cantaloupe administration UI due to security concerns. (http://<load.balancer.del.host>:8182/admin)

    • Please consult any doubts about the Cantaloupe Delivery with Rosetta support team.


    Article last edited: 06-09-2022