Как это сделать в среде OSGI я знаю, когда есть 1 бандл, который раздает коннекты, и другие бандлы, которые берут свободный коннект из пула. А вот как это воспроизвести с агентами, я что-то призадумался. При запуске бандлов, они работают в одном контексте OSGI, поэтому и есть такая возможность. А вот при запуске агента, происходит запуск в своем контексте и как достучаться до другого контекста, я пока не знаю.
Для среды OSGI метод в следующем.
В OSGI среде есть понятие services, которые как и классы можно экспортировать и импортировать(описывается в манифесте). Поэтому в бандле, который раздает коннекты, создается DataSource и помещается в контейнер, например я пользуюсь hikaricp. Созданный DataSource экспортируется как сервис с определенным именем. Во 2-м бандле мы импортируем сервис по имени, т.е. фактически 2-й бандл будет импортировать DataSource из первого. Соответственно при обращении к DataSource во 2-м бандле, он через сервис, получает его из 1-го. После завершения операции, коннект возвращается в пул hikaricp. В случаи, если коннект битый(любая ошибка при соединении), hikaricp обновляет коннект в своем пуле.
Но это работает в OSGI. Как это переделать на агенты, а тут еще LS.....надо думать
[doublepost=1501566946,1501566523][/doublepost]Хм....как вариант заюзать это все через REST/SOAP сервисы, ну или на крайний случай веб сервлет. Будет 2 бандла. 1-й DataSource с hikaricp, 2-й веб сервис. LS локально, если запуск происходит на сервере или удаленно, вызывает этот сервис, который в свою очередь выполняет определенные действия с базой, получая коннекты из 1-го бандла. Результат возвращается в LS агента или java агента. Оба они умеют работать с веб сервисами
[doublepost=1501567216][/doublepost]как создать бандл REST Applications, можно посмотреть в блоге(
Ссылка скрыта от гостей
). Мне более комфортно их создавать с apache cxf, но и так можно.