Как установить и работать с Spring WorkManagerTaskExecutor на сервере приложений IBM Websphere (WS)
(Йоси Лев)
При разработке приложений под WS-AS и при запуске потоков,Вам следует создать и использовать специальный внутренний ресурс WS под названием «Work-Manager».Это подход к запуску управляемых потоков на сервере приложений IBM Websphere.
Придерживайтесь следующих этапов: сначала определите ресурс Work-Manager в Websphere, а затем подключите и используйте его в Spring:
1. Войдите в административную консоль WS
2. Выберите: Ресурсы -> Асинхронные компоненты -> Менеджеры работы.
3. Выберите сервер области + ячейка
4. Нажмите кнопку [new]
5. определите Work-manager
также определите ваше имя JNDI Work-manager,
например: wm / taskex11
6. В spring-config-file.xml добавьте a следующим образом:
<bean id="myTaskExecutor"
class="org.springframework.scheduling.commonj.WorkManagerTaskExecutor">
<property name="workManagerName" value="wm/taskex11" />
</bean>
ПРИМЕЧАНИЕ!
См. Значение свойства "workManagerName".
Здесь самое важное - определить то же имя JNDI менеджера работ, которое вы
указали в Websphere.консоль администратора на этапе 5 (выше).
Вот так Spring Work-Manager знает, какой WS JNDI он должен найти
, чтобы использовать определенный WS ресурс.
Кажется, это единственный способзапускать управляемые потоки под IBM WS AS.
7. Поскольку у вас есть этот (ступень-6) инфра-компонент, определенный в Spring, вы можете внедрить его в
другие компоненты приложения, как вы вводите любой другой компонент или ресурс:
@Autowired
private WorkManagerTaskExecutor workManagerTaskExecutor;
8. Создайте объект Runnable и передайте его методу execute ()
метода workManagerTaskExecutor:
Runnable r1 = new Runnable(){
@Override
public void run() {
for(int i = 0 ; i < 100;i++){
logger.info("run() method of Runnable. i=["+i+"], thread:["
+ Thread.currentThread().getName()+"]");
try {
Thread.sleep(500L);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}//run
};//anonymous
workManagerTaskExecutor.execute(r1);
workManagerTaskExecutor.execute(r1);
Удачи,
Йоси Лев