# Getting tenant Id as null from 'TenantAwareDataSource' in multi tenancy mode

**URL:** <https://forum.flowable.org/t/getting-tenant-id-as-null-from-tenantawaredatasource-in-multi-tenancy-mode/5079>\
**Category:** Flowable Engine\
**Created:** [December 16, 2019, 12:14pm UTC](https://forum.flowable.org/t/getting-tenant-id-as-null-from-tenantawaredatasource-in-multi-tenancy-mode/5079 "2019-12-16T12:14:56Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![prashant](https://yyz1.discourse-cdn.com/flex035/user_avatar/forum.flowable.org/prashant/32/1820_2.png) [@prashant](https://forum.flowable.org/u/prashant)\
**Post date:** [September 21, 2020, 12:15pm UTC](https://forum.flowable.org/t/getting-tenant-id-as-null-from-tenantawaredatasource-in-multi-tenancy-mode/5079/7 "2020-09-21T12:15:50Z")

</div>

@joram, I am getting similar exception and I am not using flowable rest

> org.flowable.common.engine.api.FlowableException: Could not find a dataSource for tenant null  
> at org.flowable.common.engine.impl.cfg.multitenant.TenantAwareDataSource.getCurrentDataSource(TenantAwareDataSource.java:68) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.cfg.multitenant.TenantAwareDataSource.getConnection(TenantAwareDataSource.java:56) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.apache.ibatis.transaction.jdbc.JdbcTransaction.openConnection(JdbcTransaction.java:138) ~[mybatis-3.5.3.jar:3.5.3]  
> at org.apache.ibatis.transaction.jdbc.JdbcTransaction.getConnection(JdbcTransaction.java:60) ~[mybatis-3.5.3.jar:3.5.3]  
> at org.apache.ibatis.session.defaults.DefaultSqlSession.getConnection(DefaultSqlSession.java:297) ~[mybatis-3.5.3.jar:3.5.3]  
> at org.flowable.common.engine.impl.db.DbSqlSessionFactory.openSession(DbSqlSessionFactory.java:96) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.interceptor.CommandContext.getSession(CommandContext.java:246) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.cfg.standalone.StandaloneMybatisTransactionContext.(StandaloneMybatisTransactionContext.java:48) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.cfg.standalone.StandaloneMybatisTransactionContextFactory.openTransactionContext(StandaloneMybatisTransactionContextFactory.java:26) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.interceptor.TransactionContextInterceptor.execute(TransactionContextInterceptor.java:47) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.interceptor.CommandContextInterceptor.execute(CommandContextInterceptor.java:72) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.interceptor.LogInterceptor.execute(LogInterceptor.java:30) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:56) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.common.engine.impl.cfg.CommandExecutorImpl.execute(CommandExecutorImpl.java:51) ~[flowable-engine-common-6.5.0.jar:6.5.0]  
> at org.flowable.engine.impl.RuntimeServiceImpl.startProcessInstance(RuntimeServiceImpl.java:732) ~[flowable-engine-6.5.0.jar:6.5.0]  
> at org.flowable.engine.impl.runtime.ProcessInstanceBuilderImpl.start(ProcessInstanceBuilderImpl.java:205) ~[flowable-engine-6.5.0.jar:6.5.0]  
> at com.swapstech.galaxy.workflow.service.WorkFlowServiceImpl.startWorkFlowAsync(WorkFlowServiceImpl.java:51) ~[classes/:na]  
> at com.swapstech.galaxy.workflow.service.WorkFlowServiceImpl$$FastClassBySpringCGLIB$$6873dbe7.invoke() ~[classes/:na]  
> at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.5.RELEASE.jar:5.2.5.RELEASE]  
> at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]  
> at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]  
> at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]  
> at org.springframework.aop.interceptor.AsyncExecutionInterceptor.lambda$invoke$0(AsyncExecutionInterceptor.java:115) ~[spring-aop-5.2.5.RELEASE.jar:5.2.5.RELEASE]  
> at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[na:1.8.0\_181]  
> at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[na:1.8.0\_181]  
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[na:1.8.0\_181]  
> at java.lang.Thread.run(Thread.java:748) ~[na:1.8.0\_181]

Here is the code I am invoking it

> processInstance = processEngine.getRuntimeService().createProcessInstanceBuilder()  
> .variables(workFlowModelMap)  
> .processDefinitionKey(processInstanceKey)  
> .predefineProcessInstanceId(processInstId)  
> .tenantId(tenant)  
> .start();

My engine configuration

> @Bean  
> public MultiSchemaMultiTenantProcessEngineConfiguration processEngineConfigurationImpl() {  
> BankOSTenantHolder tenantInfoHolder= new BankOSTenantHolder();  
> tenantInfoHolder.addTenant(tenants);

```
	MultiSchemaMultiTenantProcessEngineConfiguration config= new MultiSchemaMultiTenantProcessEngineConfiguration(tenantInfoHolder);
	
	config.setDatabaseType(MultiSchemaMultiTenantProcessEngineConfiguration.DATABASE_TYPE_MYSQL);
    config.setDatabaseSchemaUpdate(MultiSchemaMultiTenantProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
    config.setAsyncExecutorActivate(true);
    config.setDisableIdmEngine(true);
    config.setDisableEventRegistry(true);
    config.setJpaEntityManagerFactory(localContainerEntityManagerFactoryBean.getObject());

    if (sharedExecutor) {
        config.setAsyncExecutor(new SharedExecutorServiceAsyncExecutor(tenantInfoHolder));
    } else {
        config.setAsyncExecutor(new ExecutorPerTenantAsyncExecutor(tenantInfoHolder));
    }
    return config;
}

```

> @Bean  
> public ProcessEngine buildProcessEngine(MultiSchemaMultiTenantProcessEngineConfiguration config) {  
> for (String tenant : tenants) {  
> config.registerTenant(tenant,createDataSource(tenant));  
> }  
> return config.buildProcessEngine();  
> }

---

_[View the full topic](https://forum.flowable.org/t/getting-tenant-id-as-null-from-tenantawaredatasource-in-multi-tenancy-mode/5079)._
