com.r3corda.node.services.network / PersistentNetworkMapService

# PersistentNetworkMapService

`class PersistentNetworkMapService : AbstractNetworkMapService`

A network map service backed by a database to survive restarts of the node hosting it.

Majority of the logic is inherited from AbstractNetworkMapService.

This class needs database transactions to be in-flight during method calls and init, otherwise it will throw exceptions.

### Constructors

<init> | `PersistentNetworkMapService(services: ServiceHubInternal)` A network map service backed by a database to survive restarts of the node hosting it.

### Properties

registeredNodes | `val registeredNodes: MutableMap<Party, NodeRegistrationInfo>`
subscribers | `val subscribers: ThreadBox<JDBCHashMap<SingleMessageRecipient, LastAcknowledgeInfo>>`

### Inherited Properties

_mapVersion | `val _mapVersion: AtomicInteger`
mapVersion | `val mapVersion: Int`
maxSizeRegistrationRequestBytes | `val maxSizeRegistrationRequestBytes: Int` Maximum credible size for a registration request. Generally requests are around 500-600 bytes, so this gives a 10 times overhead.
maxUnacknowledgedUpdates | `val maxUnacknowledgedUpdates: Int` Maximum number of unacknowledged updates to send to a node before automatically unregistering them for updates
nodes | `open val nodes: List<NodeInfo>`

### Inherited Functions

getUnacknowledgedCount | `fun getUnacknowledgedCount(subscriber: SingleMessageRecipient, mapVersion: Int): Int?`
notifySubscribers | `fun notifySubscribers(wireReg: WireNodeRegistration, mapVersion: Int): Unit`
processAcknowledge | `fun processAcknowledge(req: UpdateAcknowledge): Unit`
processFetchAllRequest | `fun processFetchAllRequest(req: FetchMapRequest): FetchMapResponse`
processQueryRequest | `fun processQueryRequest(req: QueryIdentityRequest): QueryIdentityResponse`
processRegistrationChangeRequest | `fun processRegistrationChangeRequest(req: RegistrationRequest): RegistrationResponse`
processSubscriptionRequest | `fun processSubscriptionRequest(req: SubscribeRequest): SubscribeResponse`
setup | `fun setup(): Unit`
unregisterNetworkHandlers | `fun unregisterNetworkHandlers(): Unit`