API Bean 和方法
以下 Bean 与 API 进行交互:
ScriptEnvironmentBean
createAPISessionBean() 方法可获得 API 会话 Bean。
ScriptAPICommandRunnerBean
管理并执行 PTC RV&S API 命令。addOption() 方法在命令中添加选项标志
ScriptAPISessionBean
访问和控制 PTC RV&S API 会话。executeCmd() 方法执行命令。
使用 ScriptAPISessionBean 时应特别小心。如果 Bean 的使用不正确,容易导致整个服务器死锁。当前正在运行的触发器事件可能会锁定资源。使用此 Bean 可返回到服务器,并利用其自身资源和锁定启动新事务。该事务与当前正在运行的事件不共享任何内容,当前持有的任何锁定都可能阻止新事务。等待锁定释放的新事务永远不会释放,因为它已由 PTC RV&S 持有。
在以下情况下,使用此 Bean 可能比较安全:
◦ 在后触发器中。在后触发器中,所有信息应都已提交,所有锁定应都已释放。
◦ 在前触发器中,当 API 严格用于获取信息时。未进行任何更新;不需要获得锁定。即使在这种情况下,您也必须非常小心。对于 Oracle,应该没有任何问题,因为 Oracle 的锁定方式与其他数据库完全不同。但是,MS/SQL Server 等数据库会获得在当前事务中创建或修改的任何项的排他锁。任何可能返回新建项或修改项的查询都会尝试获取共享锁和死锁。