1) Вы можете использовать Work Manager для управления запросами. Однако ограничение количества одновременно работающих пользователей будет зависеть от приложения к приложению. Если это веб-приложение, используйте рабочие менеджеры с максимальным ограничением, равным количеству пользователей, которым вы хотите его ограничить. Тем не менее, убедитесь, что вы выяснили, как справиться с переполнением - что вы будете делать, когда получите 100 запросов, но с ограничением на 5 пользователей? Это синхронная или асинхронная обработка?
2) В идеале вы хотите, чтобы соотношение потоков к соединениям в пуле составляло 1: 1. Это гарантирует, что ни один поток (запрос пользователя) не ожидает подключения. Я бы предложил попробовать это. Вы можете отслеживать пулы соединений JDBC, используя консоль WebLogic и добавляя поля в столбцы на вкладке «Мониторинг» для соединения. Если у вас большое количество официантов и / или большое время ожидания, вам нужно увеличить количество соединений в пуле. Вы можете начать с соотношения потоков: соединений 1: 0,75, провести тестирование производительности / нагрузки и скорректировать его на основании полученных результатов. Это действительно зависит от того, насколько хорошо вы управляете соединениями. Разъединяете ли вы соединение сразу после получения данных из базы данных, или вы продолжаете работу с логикой приложения и освобождаете соединение в конце метода / логики? Если вы удерживаете соединение в течение длительного времени, вам, вероятно, понадобится приблизить соотношение 1: 1.