并发coldfusion ORM数据库请求失败

时间:2017-02-23 10:27:51

标签: ajax hibernate coldfusion-10

我是coldfusion的新手,我正在尝试ORM(Hibernate,我相信,我根本不知道)

我试图快速连续调用两个CF页时遇到了问题。两页上的代码非常简单:

getAppointments.cfm:

<cfscript>
    ORMReload();
    appointments = serializeJSON(EntityLoad("Appointment"));
</cfscript>

<cfoutput>#appointments#</cfoutput>

getRooms.cfm:

<cfscript>
    ORMReload();
    rooms = serializeJSON(EntityLoad("Room"));
</cfscript>

<cfoutput>#rooms#</cfoutput>

我用来调用它们的代码是jQuery / AJAX:

var appointments;
var rooms;

$(document).ready(function () {
    loadAppointments();
    loadRooms();
});

function loadAppointments() {
    $.ajax({
        type: 'get',
        url: 'getAppointments.cfm'
    }).done(function (response) {
        appointments = JSON.parse(response);
    }).fail(function (response) {
        var message = response.status + " - " + response.statusText;
        alert("Failed to load appointments: " + message);
    });
}

function loadRooms() {
    $.ajax({
        type: 'get',
        url: 'getRooms.cfm'
    }).done(function (jsonString) {
        rooms = JSON.parse(jsonString);
    }).fail(function (response) {
        var message = response.status + " - " + response.statusText;
        alert("Failed to load rooms: " + message);
    })
}

如果我设置断点以在调用loadRooms()之前暂停执行,那么一切都很顺利。如果我让代码直接运行,我会收到500错误,所以很明显我因为AJAX调用的异步特性而遇到ORM的某种并发问题。

我在IIS(localhost)上运行CF,带有SQL Server数据库。

我见过的关于CF的教程都没有涵盖这种情况。我知道我可以在JS函数中推迟执行,但这只会掩盖底层问题。

有人能指出我的解决方案吗? CF中是否有类似于C#锁的东西?

0 个答案:

没有答案