jQWidgets Forums

jQuery UI Widgets Forums Grid Grid does not show any result in WebGarden mode (Maximum worker process more than 1 for AppPool)

This topic contains 4 replies, has 2 voices, and was last updated by  kalees 12 years, 10 months ago.

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author

  • kalees
    Member

    Hi,

    I am facing 2 problems in the grid update;

    Problem 1#

    if we changed the maximum worker process in process model for a WebAppPool from 1 to 4, the grid does not display the result. (WebGarden)

    Please refer the link

    http://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/92092858-b9be-4fb8-b6c2-e7c9c86129d0.mspx?mfr=true

    we changed the IIS setting to 0xFF mode.

    But, it is working fine if maximum worker process is 1.

    Please give me some solution on this.

    Thanks & Regards

    Kalees


    Peter Stoev
    Keymaster

    Hi Kalees,

    I don’t think that your issue is related to jqxGrid and the way it works. If you have data to display and you bind the Grid correctly in a way demonstrated in the samples and help documentation, then it will display the data. If you have an issue in your client or server-side code, it will not display data. You can learn how to set up jqxGrid to display data from here: Online Documentation and jqxgrid demos.

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com


    kalees
    Member

    Hi Peter,

    Actuallay, Grid is displaying the data during the process and at last it is disappear with no data. Can you pls verify the below script.
    It is very basic and straight forward;

    It is working fine, if one worker process is running with one apppool; but it is not one AppPool with multiple worker process;

    Here is my jquery script; PerformMe is the class name of Button1;

    I verified the API object also and it is living with its data but i could it get the final data on the grid.

    i tried your example in Refresh Grid button; But i do not know how to call the GetData method?

    I added here refresh button and help me on how to refresh the Json grid data;

    Thanks in advance

    $(document).ready(function () {
    var theme = getTheme();
    function getdata() {
    var source =
    {
    datatype: “json”,
    async: false,
    datafields: [
    { name: ‘Id’ },
    { name: ‘FileName’ },
    { name: ‘Link’ },
    { name: ‘UserName’ },
    { name: ‘ColorStatus’ },
    { name: ‘GroupLevel’ }
    ],
    id: “id”,
    url: ‘api/ConvertedFiles/’
    };

    var dataAdapter = new $.jqx.dataAdapter(source);

    // //page rendering – anchor tag
    var pagerrenderer = function () {
    var element = $(“

    “);
    var paginginfo = $(“#jqxgrid”).jqxGrid(‘getpaginginformation’);
    for (i = 0; i < paginginfo.pagescount; i++) {
    // add anchor tag with the page number for each page.
    var anchor = $("” + i + ““);
    anchor.appendTo(element);
    anchor.click(function (event) {
    // go to a page.
    var pagenum = parseInt($(event.target).text());
    $(“#jqxgrid”).jqxGrid(‘gotopage’, pagenum);
    });
    }
    return element;
    }
    //For Report Link Button
    var makeAddToListButton_html = function (id, row, column, value) {
    var filename = $(‘#jqxgrid’).jqxGrid(‘getcellvalue’, id, “FileName”);
    var datarow = $(‘#jqxgrid’).jqxGrid(‘getcellvalue’, id, “Link”);
    //Link
    if (value.indexOf(‘#’) != -1) {
    value = value.substring(0, value.indexOf(‘#’));
    }
    var format = { target: ‘”_blank”‘ };
    var html = $.jqx.dataFormat.formatlink(datarow, format);
    // return html;
    return ‘‘ + filename + ‘
    //Button
    // return ”
    }
    // For Status Color display
    var makeAddTostatusButton_html = function (id, row, column, value) {

    var status = $(‘#jqxgrid’).jqxGrid(‘getcellvalue’, id, “ColorStatus”);
    var colvar = status;

    return ”
    }

    $(“#jqxgrid”).bind(‘bindingcomplete’, function () { $(“#jqxgrid”).jqxGrid(‘sortby’, ‘GroupLevel’, ‘asc’); });
    $(“#jqxgrid”).bind(“sort”, function (event) { var sortinformation = event.args.sortinformation; var sortdirection = sortinformation.sortdirection; var sortcolumn = sortinformation.sortcolumn; });

    $(“#jqxgrid”).jqxGrid(
    {
    source: dataAdapter,
    pageable: true,
    autoheight: true,
    sortable: true,
    pagerrenderer: pagerrenderer,
    theme: theme,
    width: 750,
    columns: [

    { text: ‘File Name’, cellsrenderer: makeAddToListButton_html, dataField: ‘FileName’, width: 550, sortable: false },
    //{ text: ‘Link’, cellsrenderer: makeAddToListButton_html, dataField: ‘Link’, width: 50 },
    {text: ‘Status’, cellsrenderer: makeAddTostatusButton_html, dataField: ‘ColorStatus’, width: 50, sortable: false },
    { text: ‘Description’, dataField: ‘GroupLevel’, width: 150 }

    ]
    });
    // init buttons.
    $(“#refresh”).jqxButton({ theme: theme });
    $(“#clear”).jqxButton({ theme: theme });
    $(“#refresh”).click(function () {
    $(“#jqxgrid”).jqxGrid(‘updatebounddata’);
    });
    $(“#clear”).click(function () {
    $(“#jqxgrid”).jqxGrid(‘clear’);
    });

    }

    $(‘.PerformMe’).live(‘click’,
    function (e) {
    RefreshGrid();
    });

    function RefreshGrid() {
    var stopInterval = false;
    var stopIntervalId = setInterval(function () {

    if ($(“#jqxgrid”).jqxGrid(‘getpaginginformation’) == undefined) {
    var page = 0;
    }
    else {
    var page = $(“#jqxgrid”).jqxGrid(‘getpaginginformation’).pagenum;
    }

    var ConversionMode = $(‘#’).text();

    if (ConversionMode == 1)
    stopInterval = true;

    if (stopInterval) {
    getdata();
    $(‘#’).html(“0”);
    alert(“I am stopped”);
    clearInterval(stopIntervalId);
    }
    else {
    getdata();
    }

    $(“#jqxgrid”).jqxGrid(‘gotopage’, page);
    }, 1000);
    }
    });


    Peter Stoev
    Keymaster

    Hi kalees,

    If you don’t see a data at a certain point, then your server code may return an empty set of data at some point. In addition, make sure that you use the latest versions of jqxGrid i.e 2.3.1.

    Best Regards,
    Peter Stoev

    jQWidgets Team
    http://www.jqwidgets.com


    kalees
    Member

    Hi Peter,

    Thank you for your reply;

    There is no much work on serverside code. In a button click i do this. Just create some empty html files and create a link.

    Again I clear you here,
    In the IIS DefaultAppPool, If the maximum Workerprocess number is 1 (Default), I am getting data without any issue.
    After I changed to 4, Then i could not see the data. I meant to say Grid is showing data during the process, then data are disappeared in the process completed. But API data is still alive.
    Server side code also completed without anhy issue.

    Without stopping the page, again i am changing the worker process to 1, then I click the button, it is fine, I am getting the data.

    My doubt is, WebGarden is not supporting InProc Session state in AspNet. It may be any limitation on clientside script running.

    public void Button1_Click(object sender, EventArgs e)
    {

    Label2.Text = “0”;

    ConvertedFilesController cfc = new ConvertedFilesController();

    cfc.Delete(Page.User.Identity.Name); // To delete the files from the Api

    for (int i = 5; i < 20; i++)
    {
    string grouplevel = "";
    if (i = 9 && i < 11)
    grouplevel = "Success";
    else
    grouplevel = "File with Error";
    Thread.Sleep(100);
    Debug.WriteLine("task" + i);
    string filename = "Unit" + i;
    string filelink = "Reports/kalees/" + filename + ".html";
    try
    {
    File.Create(@"C:\JQueryGridview_demo\JQueryGridview_demo\" + filelink);
    }
    catch (IOException ioe)
    { }
    string uName = Page.User.Identity.Name;

    cfc.PostFile(filename, filelink, uName, "RED", grouplevel);
    }
    Label1.Text = "Button1 processed";
    ViewState["Processed"] = "true";

    Label2.Text = "1";

    }

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic.