Critical

EAServer is no longer supported

Description

    EAServer is no longer supported since PowerBuilder 2017. The SSLServiceProvider object provides SSL/TLS services in older PowerBuilder versions. It may not support modern security protocols, making it unsuitable for contemporary secure communications. The CORBACurrent object is part of the CORBA standard for distributed objects. CORBA is outdated and not widely used in modern application architectures. The CORBAObject represents remote objects in a CORBA system. Its use is discouraged due to performance issues and obsolescence. The TransactionServer object handles transaction management in distributed applications. Modern frameworks provide more robust and scalable solutions.

Key Benefits

  • Ensures Better Security:Switching to updated libraries ensures better security, compatibility with modern protocols, and compliance with standards like TLS 1.3.
  • Improves Scalability:Replacing CORBACurrent with modern communication methods like REST APIs improves scalability, maintainability, and performance.
  • Improves Interoperability:Using contemporary SOA or microservice patterns instead of CORBAObject enhances interoperability and reduces technical debt.
  • Increased Reliability:Adopting modern transaction management systems offers increased reliability, better integration options, and improved scalability.

 

Non-compliant Code Example

global function string GetTransactionServerFuncObj (integer id);

Integer rc
OleObject lole
TransactionServer lts   //Non compliant code
Integer li_rc
long ll_rv 

lole = create OleObjectrc = this.GetContextService("TransactionServer", lts)
   IF rc <> 1 THEN
      return "Error from GetContextService " + String (rc)
   END IF
   
// PBCOM is the ProgID, n_genapp is the class namerc = lts.CreateInstance(lole, "PBCOM.n_genapp")
   
   IF rc <> 0 THEN
      return "Error from CreateInstance " + String (rc)
   END IF 

IF lts.IsTransactionAborted() = FALSE and lts.IsInTransaction = TRUE THEN       //Non compliant code
    ll_rv = ids_datastore.Update()
    IF ll_rv = 1 THEN
      lts.EnableCommit()
    ELSE
      lts.DisableCommit()
    END IF
END IF

li_rc = this.GetContextService("TransactionServer", lts)
IF li_rc <> 1 THEN
      // handle the error
     return "Error from CreateInstance " + String (li_rc) 
END IF

ll_rv = ids_datastore.Update()
IF ll_rv = 1 THEN
      lts.EnableCommit()
ELSE
      lts.DisableCommit()
END IF

return productName_string
end function
global function string GetConnectionFuncObj (integer id);

SSLServiceProvider   sp             //Non compliant code
// set QOP
getcontextservice( "SSLServiceProvider", sp )
sp.setglobalproperty( "QOP", "sybpks_simple" ) //Non compliant code
// set PB callback handler
sp.setglobalproperty( "CallbackImpl", "uo_sslcallback_handler" ) //Non compliant code

// connect to the server
connection  cxn                 //Non compliant code
cxn.userid   = "jagadmin"
cxn.password = "sybase"
cxn.driver   = "jaguar"
cxn.application = "dbgpkg"
cxn.options     = "ORBLogFile='d:\PBJagClient.Log'"
cxn.location = "iiops://localhost:9001"

TRY
   l_rc = cxn.ConnectToServer() //Non compliant code
CATCH (userabortedexception uae)
   MessageBox("UserAbortedException Caught", &
      "ConnectToServer caught: " +  uae.getMessage() )
   l_rc = 999
CATCH ( CORBASystemException cse )
   MessageBox("CORBASystemException Caught", &
      "ConnectToServer caught: " +  cse.getMessage() )
   l_rc = 998
CATCH ( RuntimeError re )
   MessageBox("RuntimeError Exception Caught", &
      "ConnectToServer caught: " +  re.getMessage() )
   l_rc = 997
CATCH ( Exception ex )
   MessageBox("Exception Caught", &
      "ConnectToServer caught: " +  ex.getMessage() )
   l_rc = 996
END TRY
 
IF l_rc <> 0 THEN
   MessageBox("Error", "Connection Failed - code: " &
      + string(l_rc) )
   MessageBox("Error Info", "ErrorCode= " + &
      string(cxn.ErrCode) + "~nErrText= " + &
   cxn.ErrText)
ELSE
   MessageBox("OK", "Connection Established")
END IF

Return productName_string
end function
Visual Expert 2025
 VEPBRULE97