example issues, use cases: 1. some processes if running multiple times make corrupt data (import bank, import products... etc) - define max 1 instance/client resolve this. 2. some reports are huge e.g run storage details 10 times simultaneously make unstable server, influence other users confort e.g running db approx 1 hour at 80% 3. web service call e.g already generate a shipment, after gui unhandled use case user allowed run it again. max 1 instance/user resolve this auth endpoint
A. Implement Simultaneous Process Feature which allow to define max process/report instance per system/tenant/user
definition: max process instance determine maximally simultaneously entitlement at given definition level. goal: this allow avoid generic way performance and in many cases data corruption.
note: this generic solution doesn't targeting concurrency handling e.g. in data processing however many conflicts can be this simple way avoided.
LEVELS 1. max instance for installation/system - eg. system wide we allow 10 running instances 2. max instance per tenant - eg. we allow tenant 1 process per tenant 3. max instance per org 4. max instance per role 5. max instance per user - each logged in user allowed to run same process/report instance once.
use case/scenarios 1. user start 1st report then 2nd setup: SimultanousProcessInstancePerTenant = 1 - message: you are not allowed to run more then 1 report, try later 2. there are 20 users running 20 instances in 5 tenants setup: SimultanousProcessSystem = 21th user will be rejected message: you are not allowed to run more then 1 report try later 3. user run process as Run As Job -
requirements 1. implement system, tenant, user level 2. implement for user
changes (need serious definition here...this is only idea now) AD_Process_SimultanousProcessInstance table columns: _ID: RuleType: SimultanousProcessInstancePerSystem SimultanousProcessInstancePerClient SimultanousProcessInstancePerUser reachedsiminstances: e.g. 10
table records example record 1. process 1 SimultanousProcessInstancePerSystem=200 reachedsiminstances=130 record 2. process 1 SimultanousProcessInstancePerClient=5 reachedsiminstances=3 record 1. process 1 SimultanousProcessInstancePerUser=2 reachedsiminstances
setup allowed values 0 = unlimited 1 and above specify count/limit we setup for all processes and report 0 to be legacy installation admin setup for critical process other then 0 this enable count for SimultanousProcessInstancePer% installation owner - eg. cloud owner setup per client max SimultanousProcessInstancePerClient e.g. based on "licences" user guide - we prompt our client power user to avoid such cases - and save capacities. so power user able setup for tenant their rules.
statistics/controlling for admin 1. calculate max simultaneously process count - important to know statistically how many user 2. report in system issue - when limit reached
Long Term Goal - implement running strategy
max running instances - system message: max running instances reached, try later
auto-run-as-job/queueing - system message: "max running instances reached", your request was queued as job
example issues, use cases:
1. some processes if running multiple times make corrupt data (import bank, import products... etc) - define max 1 instance/client resolve this.
2. some reports are huge e.g run storage details 10 times simultaneously make unstable server, influence other users confort e.g running db approx 1 hour at 80%
3. web service call e.g already generate a shipment, after gui unhandled use case user allowed run it again. max 1 instance/user resolve this auth endpoint
A. Implement Simultaneous Process Feature which allow to define max process/report instance per system/tenant/user
definition: max process instance determine maximally simultaneously entitlement at given definition level.
goal: this allow avoid generic way performance and in many cases data corruption.
note: this generic solution doesn't targeting concurrency handling e.g. in data processing however many conflicts can be this simple way avoided.
LEVELS
1. max instance for installation/system - eg. system wide we allow 10 running instances
2. max instance per tenant - eg. we allow tenant 1 process per tenant
3. max instance per org
4. max instance per role
5. max instance per user - each logged in user allowed to run same process/report instance once.
use case/scenarios
1. user start 1st report then 2nd setup: SimultanousProcessInstancePerTenant = 1 - message: you are not allowed to run more then 1 report, try later
2. there are 20 users running 20 instances in 5 tenants setup: SimultanousProcessSystem = 21th user will be rejected message: you are not allowed to run more then 1 report try later
3. user run process as Run As Job -
requirements
1. implement system, tenant, user level
2. implement for user
changes (need serious definition here...this is only idea now)
AD_Process_SimultanousProcessInstance table
columns:
_ID:
RuleType:
SimultanousProcessInstancePerSystem
SimultanousProcessInstancePerClient
SimultanousProcessInstancePerUser
reachedsiminstances: e.g. 10
table records example
record 1. process 1 SimultanousProcessInstancePerSystem=200 reachedsiminstances=130
record 2. process 1 SimultanousProcessInstancePerClient=5 reachedsiminstances=3
record 1. process 1 SimultanousProcessInstancePerUser=2 reachedsiminstances
setup
allowed values 0 = unlimited 1 and above specify count/limit
we setup for all processes and report 0 to be legacy
installation admin setup for critical process other then 0 this enable count for SimultanousProcessInstancePer%
installation owner - eg. cloud owner setup per client max SimultanousProcessInstancePerClient e.g. based on "licences"
user guide - we prompt our client power user to avoid such cases - and save capacities. so power user able setup for tenant their rules.
statistics/controlling for admin
1. calculate max simultaneously process count - important to know statistically how many user
2. report in system issue - when limit reached
Long Term Goal - implement running strategy
max running instances - system message: max running instances reached, try later
auto-run-as-job/queueing - system message: "max running instances reached", your request was queued as job