Perform Service Exchange basic configuration

Service Exchange (SX) is the component that brings the Service Portal experience together, integrating the portal, catalog, and end-point fulfillment engines to enable functional integration with multiple providers. SX features built-in content that exchanges service messages and orchestrates and dramatically simplifies the integration of new and existing products, services and solutions.

The following are two basic configuration files that SX needs in order to start and run correctly.

infrastructure.json

This file is located on a classpath in the [%SX_HOME%]/WEB-INF/classes/config directory. It contains information about SX components like RabbitMQ and OO.

  { 
        

"OO": { // Operation Orchestration connection information

"endpoint": "http://localhost:8080/oo/rest",

"loginName": "admin",

"password": "changeit"

},

"JMS_BROKER": {

"endpoint": "localhost",

"loginName": "rabbit_sx",

"password": "propel2014"

},

"REST": {

"endpoint": "http://${env.HOSTNAME}:8080/sx/api/request",

"operationEndpoint": "http://${env.HOSTNAME}:8080/sx/api/operation",

"bundleCallbackEndpoint": "http://${env.HOSTNAME}:8080/sx/api/bundle",

"csaNotificationEndpoint": "http://${env.HOSTNAME}:8080/sx/api/csa",

"emailCallbackEndpoint": "http://${env.HOSTNAME}:8080/sx/api/email"

},

"SERVICE_CATALOG": {

"catalogApprovalPageLink": "http://localhost:8080/sx/notifications.jsp",

"requestCallbackEndpoint": "",

"subscriptionCallbackEndpoint": "",

"internalCallbackEndpoint": "http://localhost:8080/sx/api/catalog"

},

"AUTHENTICATION": {

"secretKey": "propel"

}

}

sx.properties

The sx.properties file is located in the [%SX_HOME%]/WEB-INF directory and contains configuration for the SX web application.

catalog.notificationMaxEntries=50
catalog.notificationUser=sxCatalogTransportUser
catalog.notificationUserOrganization=Provider 
catalog.notificationUserPassword=ENC(B/vX8k7pZkln2VxV2HaDiPesUUkF0hc3ZVLIAtGzG28\=)
db.dialect=org.hibernate.dialect.PostgreSQLDialect
db.driverClassName=org.postgresql.Driver
db.maxConnections=16
db.password=ENC(4w0oS736xObjhMmJTCq87Q\=\=)
db.url=jdbc\:postgresql\://localhost\:5432/sx
db.username=sxuser
diagnostics.transportUser=diagnosticsTransportUser
diagnostics.transportUserPassword=ENC(aBT5iNIuAhermpyFtg+zdKj5FT1US6sbbgOo6t6Gil/y2fvnw14L5g\=\=)
security.encryptedSigningKey=propel
security.idmHostname=mpavmcsa05.hpswlabs.adapps.hp.com
security.idmPath=idm-service
security.idmPort=9600
security.idmProtocol=https
security.idmTenant=Provider
security.idmTransportUser=idmTransportUser
security.idmTransportUserPassword=ENC(8ZHTqNTKpZn4+lbfFnkrPrRebZeUUu99yCXkT6N4DHQ\=)
security.returnUrl=${sx.url}
skipCertificateValidation=false
sx.catalog.notifications.queue=CN
sx.catalogPollingPeriodSeconds=10
sx.content.oo.delete=true
sx.content.oo.init=checkVersion
sx.content.oo.upload=always
sx.cx.backendEntityLockExpirationSeconds=300
sx.cx.lockExpirationSeconds=300
sx.disableCatalogPolling=false
sx.dlx.delay.queue=DELAY
sx.dlx.exchange=sx.dlx
sx.dlx.fail.queue=FAIL
sx.dlx.redelivery.interval.ms=30000
sx.dlx.redelivery.max.count=5
sx.dlx.retry.queue=RETRY
sx.http.connectionTimeout = 600000
sx.maxConcurrentConnectionPerSeparatedPool=2
sx.maxSeparatedPoolTotal=500
sx.mock.requests.queue=MOCK
sx.oo.callback.queue=OC
sx.oo.configuration=oo/properties
sx.oo.invocations.queue=OO
sx.organizationCache=300
sx.queue.main=SX
sx.queue.prefix=${PROPEL_HOSTNAME}
sx.queue.selftest=SELFTEST
sx.removeExistingSmChangesOnBoot=false
sx.serviceInstance.disableOnboarding=true
sx.storage.location=/datastorage
sx.sync.delay.queue=SYNC_DELAY
sx.sync.queue=SYNC
sx.sync.redelivery.interval.ms=5000
sx.ticket.disableOnboarding=false
sx.ticket.disableSmPolling=false
sx.url=https\://${PROPEL_HOSTNAME}\:9444/sx

Parameters for SX internal database configuration

Property name Description
db.dialect Configuration of db connection. Dialect for SX db. Possible values are http://docs.jboss.org/hibernate/orm/3.5/javadocs/org/hibernate/dialect/package-summary.html
db.driverClassName Configuration of db connection. JDBC driver class name.
db.password DB password in plain text.
db.url JDBC db url. Key for IDM token validation.
db.username Username of DB user.

Parameters for SX security configuration

Property name Description
security.encryptedSigningKey It will be encrypted at first start of SX.
security.idmHostname Hostname part of IDM url.
security.idmPort Port part of IDM url.
security.idmProtocol Protocol part of IDM url.
security.idmTenant Tenant user wants to log in.
security.idmTransportUser Username of integration accout for communicating with IDM.
security.idmTransportUserPassword Password in plain text of integration account. It will be encrypted once SX starts.
skipCertificateValidation Whether SX should validate SSL certificates.

Parameters for SX internal configuration

Property name Description
sx.catalog.notifications.queue Name of RabbitMQ queue for notifications.
sx.content.oo.delete Tells if content management should delete content pack from OO during SX content pack deletion. Values are true or false.
sx.content.oo.init Defines strategy of checking if content packs in OO are up to date during SX start.
  • checkName - check if content pack with given name is already uploaded, no version check, if content pack with given name is not uploaded it uploads.
  • checkVersion - check for latest version, if OO contains obsolete or no version it uploads.
  • always - always upload new content pack.
  • never - never upload.
sx.content.oo.upload Defines strategy of checking if content packs are up to date in OO during SX content pack upload. Possible values are same as for sx.content.oo.init.
sx.dlx.delay.queue See DLX Queues.XXXX
sx.dlx.exchange Name of dlx exchange. See DLX Queues.XXXX
sx.dlx.fail.queue See DLX QueuesXXXX.
sx.dlx.redelivery.interval.ms Time after that will be failing message redelivered to SX. In ms.
sx.dlx.redelivery.max.count Maximum count of retries.
sx.dlx.retry.queue See DLX QueuesXXXX
sx.http.connectionTimeout Connection timeout for HTTP connections. In ms.
sx.oo.configuration Path to file with OO configuration.
sx.queue.prefix Prefix that will be used in all queue names. Can be used for separation of multiple SX instances so that they use their own queues.
sx.queue.main Main SX RabbitMQ queue.
sx.url SX URL.
sx.ticketing.maxAttachmentSize Maximum size for ticket attachments.
sx.ticketing.forbidAttachmentExtensions Comma separated list of forbidden file extensions for ticket attachements.