Jsf 使用Primefaces的问题';进度条

Jsf 使用Primefaces的问题';进度条,jsf,primefaces,myfaces,orchestra,Jsf,Primefaces,Myfaces,Orchestra,单击updateRecords按钮,将执行一个DB操作,这需要很长时间。我打算向用户显示一个动态进度条,描述数据库操作的状态 我正在使用myfaces.orchestra的访问范围和primefaces的进度条。 orchestra会应用锁,在myBean.updateRecords()完全执行之前,不允许获取myBean.progressMonitor 错误是: 等待访问lock org.apache.myfaces.lib的时间超过30000毫秒_ReentrantLock@2c93ed它被

单击updateRecords按钮,将执行一个DB操作,这需要很长时间。我打算向用户显示一个动态进度条,描述数据库操作的状态

我正在使用myfaces.orchestra的访问范围和primefaces的进度条。

orchestra会应用锁,在myBean.updateRecords()完全执行之前,不允许获取myBean.progressMonitor

错误是:

等待访问lock org.apache.myfaces.lib的时间超过30000毫秒_ReentrantLock@2c93ed它被线程锁定。

存在ReentrantLock,它不允许从不同的服务器访问FacesContex 线因此无法访问progressbar模型和部分 请求被锁定,直到完整请求完成。尽管ajax被设置为“false”

我们如何允许与orchestra的并发请求

我还尝试创建一个线程&在该线程中执行繁重的操作。但是,我没有得到那里的脸上下文

同样的问题有什么解决办法

示例代码段:

 <p:commandButton id="updateRecords" onclick="startProgressBar();" 
     async="true" ajax="false" actionListener="#{myBean.updateRecords}" />

  <h:panelGrid id="progressBarPanel">
         <p:progressBar id="progress" interval="10"  
             rendered="#{myBean.progressBarRendered}" ajax="true" 
             value="#{myBean.progressMonitor}" 
             widgetVar="pbAjax" labelTemplate="{value}%}"/>
   </h:panelGrid>