/
spacemanager.xml
128 lines (114 loc) · 6.7 KB
/
spacemanager.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context.xsd">
<context:annotation-config/>
<bean id="properties" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<description>Imported configuration data</description>
<property name="location" value="arguments:"/>
</bean>
<bean id="liquibase" class="org.dcache.util.SpringLiquibase">
<description>Database schema manager</description>
<property name="dataSource">
<bean class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${spacemanager.db.driver}"/>
<property name="url" value="${spacemanager.db.url}"/>
<property name="username" value="${spacemanager.db.user}"/>
<property name="password" value="#{ T(diskCacheV111.util.Pgpass).getPassword('${spacemanager.db.password.file}', '${spacemanager.db.url}', '${spacemanager.db.user}', '${spacemanager.db.password}') }"/>
</bean>
</property>
<property name="changeLog" value="classpath:${spacemanager.db.schema.changelog}"/>
<property name="shouldUpdate" value="${spacemanager.db.schema.auto}"/>
</bean>
<bean id="scheduled-executor"
class="java.util.concurrent.Executors"
factory-method="newScheduledThreadPool"
destroy-method="shutdown">
<description>Task scheduler</description>
<constructor-arg value="1"/>
</bean>
<bean id="executor"
class="java.util.concurrent.ThreadPoolExecutor"
destroy-method="shutdown">
<description>Thread pool for message processing</description>
<constructor-arg value="1"/>
<constructor-arg value="${spacemanager.limits.threads}"/>
<constructor-arg value="60"/>
<constructor-arg value="SECONDS"/>
<constructor-arg>
<bean class="java.util.concurrent.LinkedBlockingQueue"/>
</constructor-arg>
</bean>
<bean id="pool-manager-stub" class="org.dcache.cells.CellStub">
<description>Pool manager communication stub</description>
<property name="destination" value="${srm.service.poolmanager}"/>
<property name="timeout" value="${srm.service.poolmanager.timeout}"/>
<property name="timeoutUnit" value="${srm.service.poolmanager.timeout.unit}"/>
</bean>
<bean id="pool-monitor" class="org.dcache.poolmanager.RemotePoolMonitorFactoryBean" init-method="init">
<description>Maintains runtime information about all pools</description>
<property name="poolManagerStub" ref="pool-manager-stub"/>
<property name="executor" ref="scheduled-executor"/>
</bean>
<bean id="pnfs-stub" class="org.dcache.cells.CellStub">
<description>PNFS manager communication stub</description>
<property name="destination" value="${srm.service.pnfsmanager}"/>
<property name="timeout" value="${srm.service.pnfsmanager.timeout}"/>
<property name="timeoutUnit" value="${srm.service.pnfsmanager.timeout.unit}"/>
<property name="retryOnNoRouteToCell" value="true"/>
</bean>
<bean id="pnfs" class="diskCacheV111.util.PnfsHandler">
<description>PNFS manager client module</description>
<constructor-arg ref="pnfs-stub"/>
</bean>
<bean id="data-source" class="com.jolbox.bonecp.BoneCPDataSource"
destroy-method="close">
<description>Database connection pool</description>
<property name="driverClass" value="${spacemanager.db.driver}"/>
<property name="jdbcUrl" value="${spacemanager.db.url}"/>
<property name="username" value="${spacemanager.db.user}"/>
<property name="password" value="#{ T(diskCacheV111.util.Pgpass).getPassword('${spacemanager.db.password.file}', '${spacemanager.db.url}', '${spacemanager.db.user}', '${spacemanager.db.password}') }"/>
<property name="partitionCount" value="${spacemanager.db.connections.partition-count}"/>
<property name="minConnectionsPerPartition" value="${spacemanager.db.connections.min-per-partition}"/>
<property name="maxConnectionsPerPartition" value="${spacemanager.db.connections.max-per-partition}"/>
<property name="idleConnectionTestPeriodInMinutes" value="60"/>
<property name="idleMaxAgeInMinutes" value="240"/>
<property name="acquireIncrement" value="5"/>
<property name="statementsCacheSize" value="100"/>
</bean>
<bean id="db-manager" class="diskCacheV111.util.DBManager">
<constructor-arg ref="data-source"/>
</bean>
<bean id="authz-policy" class="diskCacheV111.services.space.SimpleSpaceManagerAuthorizationPolicy"/>
<bean id="spacemanager" class="diskCacheV111.services.space.Manager"
init-method="start" destroy-method="stop" depends-on="liquibase">
<description>SrmSpaceManager</description>
<property name="dbManager" ref="db-manager" />
<property name="pnfsHandler" ref="pnfs"/>
<property name="poolManagerStub" ref="pool-manager-stub"/>
<property name="poolMonitor" ref="pool-monitor"/>
<property name="executor" ref="executor"/>
<property name="spaceManagerEnabled"
value="${spacemanager.enable.space-reservation}" />
<property name="updateLinkGroupsPeriod"
value="#{T(java.util.concurrent.TimeUnit).MILLISECONDS.convert(
${spacemanager.link-groups-update.period},
'${spacemanager.link-groups-update.period.unit}')}" />
<property name="expireSpaceReservationsPeriod"
value="#{T(java.util.concurrent.TimeUnit).MILLISECONDS.convert(
${spacemanager.expire-space-reservation.period},
'${spacemanager.expire-space-reservation.period.unit}')}" />
<property name="defaultRetentionPolicy" value="#{T(diskCacheV111.util.RetentionPolicy).getRetentionPolicy('${spacemanager.default-retention-policy}')}" />
<property name="defaultAccessLatency" value="#{T(diskCacheV111.util.AccessLatency).getAccessLatency('${spacemanager.default-access-latency}')}" />
<property name="reserveSpaceForNonSRMTransfers" value="${spacemanager.enable.reserve-space-for-non-srm-transfers}" />
<property name="deleteStoredFileRecord" value="false" />
<property name="cleanupExpiredSpaceFiles" value="true" />
<property name="returnFlushedSpaceToReservation" value="true" />
<property name="linkGroupAuthorizationFileName" value="${spacemanager.authz.link-group-file-name}" />
<property name="authorizationPolicy" ref="authz-policy" />
</bean>
</beans>