| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Требуется ограничить число открывемых пользователем сессий Аксапты(4.0) .  
		
		
		
		
		
		
		
	В методе startupPost() класса Application написана проверка: while select clientSessions where clientSessions.userId == curUserId() && clientSessions.Status == 1 && clientSessions.SessionId!= sessionid() ........ Когда заходиш в аксапту под юзером Admin, то все работает, а если заходиш под другим, то этот селект вообще пролетает и входит в аксапту независимо от количества открытых сессий. Как быть? Заранее спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
 | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от gl00mie
			 
 
			По крайней мере, для 3-ки был такой вариант, как ограничить количество входов пользователя. 
		
	 | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Более того, надо быть очень аккуратным при таком подходе, ведь пользователи могут быть и служебные - какие-нить proxy-пользователи для бизнес-коннектора. В результате при таком поведении системы любой функционал, их использующий, будет постоянно прибиваться при запуске второй сессии. Я точно не скажу, но вроде Enterprise Portal требует (требовал в 3-ке) двух COM-лицензий и, соотв., двух одновременно работающих сессий COM-коннектора. Подумайте об этом. Последний раз редактировалось gl00mie; 06.11.2007 в 11:01.  | 
| 
	
 | 
|
| За это сообщение автора поблагодарили: mazzy (5). | |
| 
			
			 | 
		#5 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
		
			Сообщение от gl00mie
			 
 
			Мне кажется, это очень неудачная идея; если ее вам подсказали аналитики или, того хуже, сами пользователи - подумайте дважды... Пользователь может запустить какую-нить длительную операцию (создание отчета, разноску журнала, еще что-то) - не в пакетном задании, а непосредственно в своей сессии и, "покурив" минуту-другую, попытаться запустить второй экземпляр клиента. В результате предыдущий клиент по вашей логике прибьется, и запущенная операция прервется с откатом транзакции, если таковая будет начата в ходе обработки. Хорошо, если это будет длительное создание отчета, а если какая-нить разноска? Вы уверены, что пользователи хотят именно этого и будут адекватно воспринимать подобное поведение системы при запуске второго клиента? 
		
	Более того, надо быть очень аккуратным при таком подходе, ведь пользователи могут быть и служебные - какие-нить proxy-пользователи для бизнес-коннектора. В результате при таком поведении системы любой функционал, их использующий, будет постоянно прибиваться при запуске второй сессии. Я точно не скажу, но вроде Enterprise Portal требует (требовал в 3-ке) двух COM-лицензий и, соотв., двух одновременно работающих сессий COM-коннектора. Подумайте об этом.  | 
| 
	
 | 
| 
			
			 | 
		#6 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			очень грамотное замечание. ап-солютно согласен. 
		
		
		
		
		
		
			
		
		
		
		
	ну дык и решайте эти отдельные случаи. зачем шашкой то махать?  | 
| 
	
 | 
| 
			
			 | 
		#7 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Это значит, что, в общем случае, единственное что можно сделать - это сообщить пользователю, что у него уже есть открытые сессии. И на этом все. Отслеживать такие "подвисшие" сессии должен администратор, поскольку сам пользователь часто просто не имеет физической возможности как-то снять "подвисшую" сессию.  | 
| 
	
 |