Dobře, trochu jsem pátral a přišel na to sám. (Děkujeme za mnoho laskavých lidí na mailing listu uživatelů kocourků!)
JB Nizet má pravdu:pokud vytváříte pooly připojení k databázi Tomcat z kódu Java, každý DataSource, který vytvoříte, doslova představuje/představuje samostatný fond připojení. To mě překvapilo; pochází z prostředí .NET, předpokládal jsem, že sdružování připojení Tomcat bude fungovat jako sdružování připojení SqlServer/ADO.NET:pokud k získání dvou databázových připojení použijete dva identické připojovací řetězce, budou obě pocházet ze stejného fondu připojení. V Tomcatu je však při vytváření instance objektů DataSource z kódu Java každá nová instance DataSource zcela novým fondem připojení. Pokud tedy chcete zachovat tyto fondy připojení přes volání webových služeb JAX-RS, musíte si vytvořit vlastní mezipaměť databázového fondu (DataSource), vložit do ní instance DataSource (jednu na databázi) a uložit ji. v objektu, který bude JAX-RS přetrvávat přes volání webových služeb. Právě jsem to udělal a funguje to dobře.
mimochodem, sdružování databázových připojení Tomcat nabízí funkce podobné sdružování připojení SqlServer/ADO.NET, k vytvoření instancí DataSource stačí použít prostředky JNDI. (V mém případě to není možnost, protože databáze jsou v mé aplikaci vytvářeny dynamicky a definice JNDI jsou obecně vytvářeny z konfiguračních souborů, které Tomcat čte při spuštění.)