Class SetTenantAction
- java.lang.Object
 - 
- com.ibm.fhir.persistence.jdbc.connection.ChainedAction
 - 
- com.ibm.fhir.persistence.jdbc.connection.SetTenantAction
 
 
 
- 
- All Implemented Interfaces:
 Action
public class SetTenantAction extends ChainedAction
Set the tenant variable in the session (part of Db2 multi-tenancy support). This needs to be executed at the beginning of an interaction with a database connection, before any other DML/SQL. 
- 
- 
Field Summary
Fields Modifier and Type Field Description static List<String>DATASTORE_REQUIRES_ROW_PERMISSIONS 
- 
Constructor Summary
Constructors Constructor Description SetTenantAction(FHIRConfigProvider configProvider)Public constructor.SetTenantAction(FHIRConfigProvider configProvider, Action next)Public constructor 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidconfigureTenantAccess(Connection connection)Find the tenantKey for the datasource/tenant from the FHIR server configuration and use it to set up the connection for access by this tenant by setting the SV_TENANT_ID session variable (via the FHIR_ADMIN.SET_TENANT stored procedure).voidperformOn(FHIRDbFlavor flavor, Connection c)Perform this action on the given connection 
 - 
 
- 
- 
Constructor Detail
- 
SetTenantAction
public SetTenantAction(FHIRConfigProvider configProvider)
Public constructor. No next action, so this will be the last action applied- Parameters:
 configProvider- adapter for access to fhir-server-config properties
 
- 
SetTenantAction
public SetTenantAction(FHIRConfigProvider configProvider, Action next)
Public constructor- Parameters:
 configProvider- adapter for access to fhir-server-config propertiesnext- the next action in the chain
 
 - 
 
- 
Method Detail
- 
performOn
public void performOn(FHIRDbFlavor flavor, Connection c) throws FHIRPersistenceDBConnectException
Description copied from interface:ActionPerform this action on the given connection- Specified by:
 performOnin interfaceAction- Overrides:
 performOnin classChainedAction- Parameters:
 flavor- describes the type of database associated with the given connectionc- the connection to perform the action on- Throws:
 FHIRPersistenceDBConnectException
 
- 
configureTenantAccess
public void configureTenantAccess(Connection connection) throws FHIRPersistenceDBConnectException
Find the tenantKey for the datasource/tenant from the FHIR server configuration and use it to set up the connection for access by this tenant by setting the SV_TENANT_ID session variable (via the FHIR_ADMIN.SET_TENANT stored procedure). Note that the database user we connect as does not have direct access to WRITE to the SV_TENANT_ID...it can only be set through the SET_TENANT call, for which we have been explicitly granted execute privilege.- Parameters:
 connection- the connection to configure- Throws:
 FHIRPersistenceException- if the configuration failsFHIRPersistenceDBConnectException
 
 - 
 
 -