Is there a way for a process model to obtain information about the server Appian

Is there a way for a process model to obtain information about the server Appian is running on? Server name, install directory, JVM parameters, environment variables, etc.?...

OriginalPostID-109474

OriginalPostID-109474

  Discussion posts and replies are publicly visible

  • There is no way for a process model to directly read this information from the server. One alternative would be to create a custom plugin to do this. Another would be to write this information to a database, and then have Appian read that information from the database
  • What are you trying to achieve? Sounds like an interesting use case.
  • We're trying to be creative about a problem we have with our Disaster Recovery (DR) Strategy. We have set up a separate DR environment with separate servers that have live replication of the Production data getting fed to them so that whenever a failover needs to occur, we won't have any data loss (Mike, you'll be familiar this since you helped me set it up). The problem with this is that some of the process models currently in Production point to Production Web Services (using a hardcoded WSDL). So when we failover to the DR servers and pick back up with the replicated data, the process model is still pointing to the Prod WSDL (which, in a real DR scenario, won't be available because the web service is internally hosted so it would need to failed over to DR as well). So we need a way to make the process aware of what environment it is running in so it can use the correct WSDL. We've considered just setting up a Constant that says what environment it is, but that would have to be manually changed from "PROD" to "DR" as soon as the failover occurs, which isn't ideal.
  • Did you consider solving this on a DNS level? The simplest idea might be to use a local hosts file that resolves the names in the WSDL files to different IP adresses for PROD and DR.
  • Just to clarify, does the url of the Appian site change depending on whether it runs on prod or DR, like it does for the web services? If it does, you can use a simple rule to detect the url and then assign the wsdl url based on that. Common Ojbects app has it under APN_getSiteUrl.
    If the site URL does not change, then I think manual intervention would be the simplest solution. Also, the systems that you are connecting to may not be under the same DR parameters (RTOs and RTOs) as your Appian site, so things may get more complicated in regards to which system you are reading from which site at what time.
  • Those are some good ideas, thanks guys. I'm not sure how I feel about using the local hosts file (kind of frowned upon at my company), but it would certainly work.... And Mike, to your point, the URL does change for our DR environment so we could potentially use the APN_getSiteUrl as well. However, that may only apply for our exercises (not for the real deal). In an actual DR scenario, we would likely change the URL of our DR instance to match the Prod URL so that it would be transparent to our users....