这是我的情景:
C#winapp前端和cobol作为后端。我们曾经逐行检查一个表(例如:m1),在一个名为“status”的列中输入一个条目“2”,如果找到则执行一些任务
使用多线程,自动用户将登录并对表(m1)中的条目2执行检查,这意味着自动用户将在第一次登录3Sec后再次登录并执行相同的检查。 (如果找到条目,它将执行一些操作。)用户登录和检查将使用多线程每3秒执行一次,并重复执行该方案,直到应用程序结束。
问题出现
一旦用户登录,将为用户生成id并将其存储在会话缓存中。如上所述,如果在表中找到条目2,则它将通过检索存储在高速缓存中的id来执行其他任务。由于多个用户记录之间的时间间隔是3秒。每个log-gin的id和id将存储在缓存中。以前的用户ID被下一个用户的id替换。这导致检索错误的id。
如何避免这个问题?请建议任何解决方案或替代方式来存储id
namespace connection
{
public class helper
{
public static void SetConnId(int id)
{
try
{
User backend = ConnectionCache.Backend;
backend.ConnectionId = id;
}
catch { }
}
public static int GetConnId()
{
try
{
return ConnectionCache.Backend.ConnectionId;
}
catch { }
return 0;
}
}
}