Согласованность*Расширьте обработку исключений при подключении

#hibernate #oracle-coherence

#зимовать #oracle-согласованность

Вопрос:

У меня есть служба кэширования, использующая Coherence CE 14.1.1 с расширенной поддержкой клиентов

клиент использует режим гибернации 5.2.17 с кэшем L2 coherence 14.1.1

  • Как справиться с сбоем соединения между клиентом и сервером кэша, чтобы при отключении сервера клиент продолжал нормально работать в БД без сбоев. На данный момент, когда сервер кэша не работает или возникла какая-либо проблема с подключением, клиент разбился, и все операции CRUD завершились неудачно.
  • Во-вторых, существует способ иметь несколько параметров удаленного прокси-сервера с приоритетом, так как в случае сбоя первого прокси-сервера клиент приложения попытается подключиться к другому прокси-серверу, указанному в файле конфигурации. Если все завершится неудачей, кэш L2 клиента приложения должен просто игнорировать кэширование.

ниже приведены файлы конфигурации hibernate-second-level-cache-config.xml

 lt;?xml version="1.0"?gt;  lt;!--  Copyright (c) 2020, Oracle and/or its affiliates.  Licensed under the Universal Permissive License v 1.0 as shown at  http://oss.oracle.com/licenses/upl. --gt;  lt;cache-config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xmlns="http://xmlns.oracle.com/coherence/coherence-cache-config"  xsi:schemaLocation="http://xmlns.oracle.com/coherence/coherence-cache-config coherence-cache-config.xsd"gt;   lt;caching-scheme-mappinggt;  lt;cache-mappinggt;  lt;cache-namegt;org.hibernate.cache.internal.StandardQueryCachelt;/cache-namegt;  lt;scheme-namegt;remotelt;/scheme-namegt;  lt;/cache-mappinggt;   lt;cache-mappinggt;  lt;cache-namegt;query.*lt;/cache-namegt;  lt;scheme-namegt;remotelt;/scheme-namegt;  lt;/cache-mappinggt;   lt;cache-mappinggt;  lt;cache-namegt;org.hibernate.cache.spi.UpdateTimestampsCachelt;/cache-namegt;  lt;scheme-namegt;remotelt;/scheme-namegt;  lt;/cache-mappinggt;   lt;cache-mappinggt;  lt;cache-namegt;*lt;/cache-namegt;  lt;scheme-namegt;remotelt;/scheme-namegt;  lt;/cache-mappinggt;  lt;/caching-scheme-mappinggt;   lt;caching-schemesgt;  lt;remote-cache-schemegt;  lt;scheme-namegt;remotelt;/scheme-namegt;  lt;service-namegt;ExtendTcpCacheServicelt;/service-namegt;  lt;initiator-configgt;  lt;tcp-initiatorgt;  lt;name-service-addressesgt;  lt;socket-addressgt;  lt;addressgt;127.0.0.1lt;/addressgt;  lt;portgt;7574lt;/portgt;  lt;/socket-addressgt;  lt;/name-service-addressesgt;  lt;/tcp-initiatorgt;  lt;outgoing-message-handlergt;  lt;request-timeoutgt;5slt;/request-timeoutgt;  lt;/outgoing-message-handlergt;  lt;/initiator-configgt;  lt;/remote-cache-schemegt;  lt;/caching-schemesgt; lt;/cache-configgt;  

Ответ №1:

ответ на второй вопрос таков:

в приложении на стороне клиента отредактируйте файл конфигурации кэша, добавив в него дополнительный тег , при этом убедитесь, что на всех удаленных серверах имя прокси-сервера точно совпадает с именем службы клиента

 lt;remote-cache-schemegt;   lt;scheme-namegt;remotelt;/scheme-namegt;   lt;service-namegt;ExtendTcpCacheServicelt;/service-namegt;   lt;initiator-configgt;   lt;tcp-initiatorgt;   lt;remote-addressesgt;   lt;socket-address id="1"gt;   lt;addressgt;remote-IP-1lt;/addressgt;   lt;portgt;7575lt;/portgt;   lt;/socket-addressgt;   lt;socket-address id="2"gt;   lt;addressgt;remote-IP-2lt;/addressgt;   lt;portgt;7575lt;/portgt;   lt;/socket-addressgt;   lt;/remote-addressesgt;   lt;/tcp-initiatorgt;   lt;outgoing-message-handlergt;   lt;request-timeoutgt;5slt;/request-timeoutgt;   lt;/outgoing-message-handlergt;   lt;/initiator-configgt;  lt;/remote-cache-schemegt;