When I open more than 1 tab in IE(Chrome or Firefox) then only tab can be streaming data. Others tab is not streaming data. Why?

This is my code in class StockBoardAdapter:
public class StockBoardAdapter : IDataProvider
{    
    public StructFileManager m_PRSFileStructManager = null;
    private IItemEventListener _listener;
    private volatile string lstStock = "";
    private volatile bool go;
    private volatile int temp = 0;
    private Global _myGlobal = new Global();     

    public void Init(IDictionary parameters, string configFile)
    {
    }

    public bool IsSnapshotAvailable(string itemName)
    {
        return false;
    }

    public void SetListener(IItemEventListener eventListener)
    {
        _listener = eventListener;
    }

    public void Subscribe(string itemName)
    {
        itemName = itemName.Trim();
        _myGlobal._myGlobal = itemName.Substring(4);
        
        Thread t = new Thread(new ThreadStart(Run));
        t.Start();        
    }

    public void Unsubscribe(string itemName)
    {
        itemName = itemName.Trim();
        _myGlobal._myGlobal = itemName.Substring(4);
        go = false;        
    }
    
    private void SetData(ref IDictionary eventData, Security i)
    {
        //eventData["ma_ck"] = i.StockSymbol;
        Double gia3=(Double.Parse(i.Best3Bid.ToString())/100);
        eventData["gia3"] = gia3.ToString();
        eventData["kl3"] = i.Best3BidVolumn.ToString();
        Double gia2 = (Double.Parse(i.Best2Bid.ToString()) / 100);
        eventData["gia2"] = gia2.ToString();
        eventData["kl2"] = i.Best2BidVolumn.ToString();
        Double gia1 = (Double.Parse(i.Best1Bid.ToString()) / 100);
        eventData["gia1"] = gia1.ToString();
        eventData["kl1"] = i.Best1BidVolumn.ToString();
        Double gia = (Double.Parse(i.Last.ToString()) / 100);
        eventData["gia"] = gia.ToString();
        eventData["kl"] = i.LastVol.ToString();
        eventData["tong_kl"] = i.LastVol.ToString();
        Double gia_1 = (Double.Parse(i.Best1Offer.ToString()) / 100);
        eventData["gia_1"] = gia_1.ToString();
        eventData["kl_1"] = i.Best1OfferVolumn.ToString();
        Double gia_2 = (Double.Parse(i.Best2Offer.ToString()) / 100);
        eventData["gia_2"] = gia_2.ToString();
        eventData["kl_2"] = i.Best2OfferVolumn.ToString();
        Double gia_3 = (Double.Parse(i.Best3Offer.ToString()) / 100);
        eventData["gia_3"] = gia_3.ToString();
        eventData["kl_3"] = i.Best3OfferVolumn.ToString();
    }    
    
    public void Run()
    {
        IDictionary eventData;// = new Hashtable();
        
        go = true;
        
        while (go)
        {       
            eventData = new Hashtable();
            if (lstStock == "" && DataAdapterLauncher.lstSec_All != null)
            {
                lstStock = DataAdapterLauncher.lstStock;
                eventData["Items"] = lstStock;
                _listener.Update("itemMa", eventData, false);
                Thread.Sleep(10000);
                foreach (Security i in DataAdapterLauncher.lstSec_All)
                {
                    if (i.StockType.ToUpper() == "U" || i.StockType.ToUpper() == "S")
                    {
                        eventData = new Hashtable();
                        SetData(ref eventData, i);
                        _listener.Update("item" + i.StockSymbol.ToUpper(), eventData, false);
                        Thread.Sleep(10);
                    }
                }
                System.Console.WriteLine("Local_1_" + temp.ToString());
                temp++;
            }
            else if (DataAdapterLauncher.lstSec_Update != null)
            {

                foreach (Security i in DataAdapterLauncher.lstSec_Update)
                {
                    if (i.StockType.ToUpper() == "U" || i.StockType.ToUpper() == "S")
                    {
                        eventData = new Hashtable();
                        SetData(ref eventData, i);
                        _listener.Update("item" + i.StockSymbol.ToUpper(), eventData, false);

                    }
                }
                System.Console.WriteLine("Local_2_" + temp.ToString());
                temp++;
            }
            System.Console.WriteLine("Global_1_" + temp.ToString());
            temp++;
            Thread.Sleep(1000);
        }
    }  
     
}

public class Global
{ 
    public string _myGlobal="";
and i get data from file Security.DAT (Binary file)...

This is class DataAdapterLauncher:
public class DataAdapterLauncher
{
    public static List<Security> lstSec_All = null;
    public static List<Security> lstSec_Update = null;
    public static string lstStock = "";

    //public static byte[] m_CopiedReadSecurities = null;
    //public static byte[] m_All = null;
    //public static byte[] m_Update = null;
    public static string constDataPathFileName = "DATAPATH.MAP", constDataPathTempFileName = "DATAPATH1.MAP";

    public static void Main(string[] args)
    {
        //string host = "125.234.15.210";
        string host = Commons.GetConfigKey("server_add");
        int reqrepPort = 3333;
        int notifPort = 4444;

        try
        {
            
            DataProviderServer server = new DataProviderServer();
            server.Adapter = new StockBoardAdapter();

            TcpClient reqrepSocket = new TcpClient(host, reqrepPort);
            server.RequestStream = reqrepSocket.GetStream();
            server.ReplyStream = reqrepSocket.GetStream();

            TcpClient notifSocket = new TcpClient(host, notifPort);
            server.NotifyStream = notifSocket.GetStream();

            server.Start();
            Thread t = new Thread(new ThreadStart(GetData));
            t.Start();
            System.Console.WriteLine("Remote Adapter connected to Lightstreamer Server.");
            System.Console.WriteLine("Ready to publish data...");
        }
        catch (Exception e)
        {
            System.Console.WriteLine("Could not connect to Lightstreamer Server.");
            System.Console.WriteLine("Make sure Lightstreamer Server is started before this Adapter.");
            System.Console.WriteLine(e);
        }
    }

    public static void NumOfStock(List<Security> lstSec)
    {        
        foreach (Security i in lstSec)
        {
            if (i.StockType.ToUpper() == "U" || i.StockType.ToUpper() == "S")
            {
                if (lstStock == "")
                    lstStock += i.StockSymbol.ToUpper();
                else
                    lstStock +=  "|" + i.StockSymbol.ToUpper();
            }
        }       
    }

    public static void GetData()
    {        
        bool l_IsTodays = false;
        string m_PRS_Root_Path = GetConfigKey("PRS_Root"), m_PRS_File_Path = "";
        l_IsTodays = ReadDataPathFile(m_PRS_Root_Path, ref m_PRS_File_Path);        
        byte[] m_CopiedReadSecurities = null;
        byte[] m_All = null;
        byte[] m_Update = null;
        while (true)
        {            
            try
            {     
                
                FileInfo l_FileInfo = new FileInfo(m_PRS_File_Path + "\\\\SECURITY.DAT");
                m_All = ReadFileSpecial(l_FileInfo.FullName, 0, l_FileInfo.Length);
                lstSec_All = Security.GetSecuritiesEntities(m_All);
                if (lstStock == "")
                    NumOfStock(lstSec_All);
                if (m_CopiedReadSecurities==null)
                    m_All = GetUpdatedSecuritiesRecords(l_FileInfo, ref m_CopiedReadSecurities);
                m_Update = GetUpdatedSecuritiesRecords(l_FileInfo, ref m_CopiedReadSecurities);
                if (m_Update != null && m_Update.Length>0)
                    lstSec_Update = Security.GetSecuritiesEntities(m_Update);
                m_All = null;
                m_Update = null;
            }
            catch
            {

            }
            Thread.Sleep(1000);
        }
    }

    public static bool ReadDataPathFile(string m_PRS_Root_Path, ref string m_PRS_File_Path)
    {
        //READ DATAPATH.MAP FILE GET ALL DATA INSERT TO HASHTABLE
        string l_StrDATAPATH = "";
        try
        {
            FileStream l_FileStream = new FileStream(m_PRS_Root_Path + "\\" + constDataPathFileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
            StreamReader l_StreamReader = new StreamReader(l_FileStream);
            l_StrDATAPATH = l_StreamReader.ReadLine();
            l_StreamReader.Close();
            l_FileStream.Close();
        }
        catch (IOException ex)
        {
            //WriteLog("IO Exception", ex.Message + "\r\n" + ex.StackTrace, Commons.m_excepLog);
        }

        Hashtable l_HashTable = new Hashtable();
        int l_StrLen = l_StrDATAPATH.Length;
        int l_Index = 0;
        while (l_Index < l_StrLen)
        {
            string l_StrTemp = l_StrDATAPATH.Substring(l_Index, 18);
            if (l_HashTable.Contains(l_StrTemp.Substring(0, 10)))
                l_HashTable.Remove(l_StrTemp.Substring(0, 10));
            l_HashTable.Add(l_StrTemp.Substring(0, 10), l_StrTemp.Substring(10));
            l_Index = l_Index + 18;
        }
        string l_StrToDay = DateTime.Now.ToString("dd") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("yyyy");

        //WriteLog


        if (l_HashTable.Contains(l_StrToDay))
        {
            m_PRS_File_Path = String.Concat(m_PRS_Root_Path, "\\");
            m_PRS_File_Path = String.Concat(m_PRS_Root_Path, l_HashTable[l_StrToDay].ToString());
            return true;
        }
        else
        {

            return false;
        }
    }

    public static string GetConfigKey(string key)
    {
        try
        {
            if (key.Trim() != "" || ConfigurationManager.AppSettings[key.Trim()] != null)
                return ConfigurationManager.AppSettings[key.Trim()].ToString();
            else
                return key.Trim();
        }
        catch (Exception ex)
        {

            return key;
        }
    }

    public static byte[] GetUpdatedSecuritiesRecords(FileInfo pFileInfo,ref byte[] m_CopiedReadSecurities)
    {
        try
        {
            byte[] l_Ret = null;
            byte[] l_NewSecurity = null;
            l_NewSecurity = ReadFileSpecial(pFileInfo.FullName, 0, pFileInfo.Length);
            int l_RecLen = Security.constSTC_RECORD_LENGTH;
            int l_Len = 0;
            if (l_NewSecurity != null)
                l_Len = l_NewSecurity.Length;
            if (m_CopiedReadSecurities != null && l_Len > 0)
            {
                int[] l_RecIdx = new int[l_Len / l_RecLen];   // Array of record indexes of those are actually changed
                int l_NumChangedRecs = 0;
                // Find indexes of records that are actually changed
                for (int i = 0; i < l_Len; i++)
                {
                    if (m_CopiedReadSecurities[i] != l_NewSecurity[i])
                    {
                        l_RecIdx[l_NumChangedRecs] = i / l_RecLen;
                        i = ((l_RecIdx[l_NumChangedRecs] + 1) * l_RecLen) - 1; // Move up to compare the subsequent record
                        l_NumChangedRecs++;
                    }
                }
                // Copy the changed records into the array to be returned
                l_Ret = new byte[l_NumChangedRecs * l_RecLen];
                for (int i = 0; i < l_NumChangedRecs; i++)
                {
                    // Copy record of index RecIdx[i] into the returned array
                    int k = i * l_RecLen;
                    int j = l_RecIdx[i] * l_RecLen;
                    for (int cnt = 0; cnt < l_RecLen; cnt++, k++, j++)
                    {
                        l_Ret[k] = l_NewSecurity[j];
                    }
                }
            }
            else
            {
                l_Ret = l_NewSecurity;  // There is no copied of SECURITY.DAT in memory, so just return the whole content
            }
            // Save the content of SECURITY.DAT
            m_CopiedReadSecurities = l_NewSecurity;
            return l_Ret;
        }
        catch (Exception ex)
        {
            Commons.WriteLog("UpdateSecurityRecord", ex.Message + "\r\n" + ex.StackTrace, Commons.m_excepLog);
            return null;
        }
    }

    public static byte[] ReadFileSpecial(string pFullFileName, long pStartPos, long pNumBytes)
    {
        try
        {
            return ReadFileAppend(pFullFileName, pStartPos, pNumBytes);
        }
        catch (IOException ioex)
        {
            Commons.WriteLog("ReadSpecialIO", "***** ReadFileSpecial IOException:" + ioex.Message, Commons.m_excepLog);
            return null;
        }
        catch (Exception ex)
        {
            Commons.WriteLog("ReadSpecialEx", "***** ReadFileSpecial IOException:" + ex.Message, Commons.m_excepLog);
            return null;
        }
    }

    public static byte[] ReadFileAppend(string p_FileName, long p_StartPos, long p_NumBytes)
    {
        byte[] hByt = new byte[p_NumBytes];
        try
        {
            FileStream l_FileStream = new FileStream(p_FileName, FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite);
            BinaryReader l_BinaryReader = new BinaryReader(l_FileStream);
            l_FileStream.Seek(p_StartPos, SeekOrigin.Begin);
            l_BinaryReader.Read(hByt, 0, (int)p_NumBytes);
            l_BinaryReader.Close();
            l_FileStream.Close();
            return hByt;
        }
        catch (UnauthorizedAccessException ex)
        {
            Commons.WriteLog("ReadFileAppend_UnauthorizedAccessException", ex.Message, Commons.m_excepLog);
            return null;
        }
        catch (Exception ex)
        {
            Commons.WriteLog("ReadFileAppend", ex.Message, Commons.m_excepLog);
            return null;
        }
    }

}
and this is index.htm:
<html>

<head>
	<title>Stock Board with Lightstreamer</title>
	<link rel="stylesheet" type="text/css" href="css/table.css" />
	<script language="JavaScript" src="LS/lscommons.js"></script>
	<script language="JavaScript" src="LS/lspushpage.js"></script>
	<script src="scriptaculous/prototype.js" type="text/javascript"></script>
	<script src="scriptaculous/scriptaculous.js?load=slider" type="text/javascript"></script>
</head>

<body>
<!--MyCode-->
 <!-- stock table -->
 <table width="766" border="0">  
    <tr>
      <td><a href="http://www.lightstreamer.com" target="_blank">
        <img src="images/logo.gif" alt="LIGHTSTREAMER" hspace="0" border="0" /></a></td>
      <td class="demoTitle">STOCK-LIST DEMO</td>
    </tr>
  </table>
<div id="dvStatus"></div>
  <br />
  <table border="0">
	<tr>
		<td colspan="2" id="hlc" class="note" style="text-align:left;font-weight:bold;">Highlight Color</td>
	</tr>
	<tr>
		<td colspan="2">
			<div class="slideLine" id="selectColor">
				<div class="blueCursor" id="selectBlue"> </div>
				<div class="greenCursor" id="selectGreen"> </div>
				<div class="redCursor" id="selectRed"> </div>
			</div>
		</td>
	</tr>
   </table>
	 <form name="myForm"> 
		<input type="hidden" name="hiddencount" value="1" /> 
	 </form> 
	<table><div source="lightstreamer" table="a" item="item0" field="Count" style="display: none"></div></table>
 <table id = "stocks" cellspacing="0" cellpadding="2" width="766" border="0" >
    <tr class="tableTitle">
      <td width="200" style="text-align: left">Ma CK</td>
      <td width="100">Gia 3</td>      
      <td width="100">KL 3</td>
	  <td width="100">Gia 2</td>      
      <td width="100">KL 2</td>
	  <td width="100">Gia 1</td>      
      <td width="100">KL 1</td>
      <td width="150">Gia</td>
      <td width="100">KL</td>
      <td width="150">Tong KL</td>
      <td width="100">Gia 1</td>
      <td width="100">KL 1</td>
      <td width="100">Gia 2</td>
      <td width="100">KL 2</td>
      <td width="100">Gia 3</td>
	  <td width="100">KL 3</td>
	  <td width="100">Thoi Gian</td>
    </tr>

<script>
//var schema1 =["Count"];
var schema =["gia3", "kl3", "gia2", "kl2", "gia1", "kl1", "gia", "kl", "tong_kl", "gia_1", "kl_1", "gia_2", "kl_2", "gia_3", "kl_3","time"];
	var page1 = ["itemMa"];
	var schema1=["Items"];
	var flag = true;
	var imgUp = '<img src="images/quotes_up.gif" alt="up" width="20" height="8" border="0">';
	var imgDown = '<img src="images/quotes_down.gif" alt="down" width="20" height="8" border="0">';
	var doFade = false;
	var hotColor = "#f29e05";
	var redColor = "#f8b87a";
	var greenColor = "lightgreen";
	var page = new PushPage();
	page.onEngineCreation = function(engine) {
		engine.connection.setAdapterName("PROXY_HELLOWORLD");
		engine.changeStatus("STREAMING");
	}

	page.bind();
	page.createEngine("HelloWorldApp", "LS", "SHARE_SESSION");
	var pushtable = new OverwriteTable(page1, schema1, "MERGE");

	pushtable.onItemUpdate = updateItem1;
page.onEngineReady = function(lsEngine) {
    lsEngine.onStatusChange = function(newStatus) {        
        ShowStatus(newStatus, page.isMasterPushPage());        
    };
    // take the current engine status into account
    lsEngine.onStatusChange(lsEngine.getStatus());
};
page.onEngineLost = function() {
    ShowStatus("WAITING FOR ENGINE...", true);
};
	function updateItem1(item,updateInfo) {
		if (updateInfo.isValueChanged("Items")){ 		    
		    var ars = updateInfo.getNewValue("Items").split('|');
			
		    if(ars != null){
			    if((parseInt(document.myForm.hiddencount.value) < ars.length)&&(flag)){	
					var page1Group = new Array(ars.length);				
				    for(var i = 0;i<=ars.length-parseInt(document.myForm.hiddencount.value);i++){			
					    addRow('stocks',i, ars[i]);		
						page1Group[i]="item"+ars[i];
				    }						    
				    page = new PushPage();
				    page.onEngineCreation = function(engine) {
						engine.connection.setAdapterName("PROXY_HELLOWORLD");
						engine.changeStatus("STREAMING");						
					}
			}			
			page.bind();			
			pushtable = new OverwriteTable(page1Group, schema, "MERGE");
			pushtable.setSnapshotRequired(true);
			pushtable.setRequestedMaxFrequency(1.0);
			pushtable.setPushedHtmlEnabled(true);
			// set highlighting effect when updating a cell
			pushtable.onChangingValues = function(itemPos, visualUpdateInfo, itemName) {
				if (visualUpdateInfo != null) {
				  var cold = (itemPos % 2 == 1) ? "#eeeeee" : "#ddddee";
				  if(visualUpdateInfo !="#arrow")
				  visualUpdateInfo.setRowAttribute(hotColor, cold, "backgroundColor");
				}
			};
			pushtable.onItemUpdate = updateItem;		 
			page.addTable(pushtable, "stocks");
			flag = false;
			}
		}
	}
	page.addTable(pushtable, "a");	

		//add row table
		function addRow(tableID,i,itemID) {
		
			var table = document.getElementById(tableID);

			var rowCount = table.rows.length;
			var row = table.insertRow(rowCount);
			var suff = (i % 2 == 0) ? "A" : "B";
			
			var cell0 = row.insertCell(0);
			cell0.innerHTML ='<td nowrap style="text-align: left"><a href="#"><img src="images/popup.gif" width="16" height="16" border="0" align="left" hspace="1" alt="Graphic Chart"><div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item'+ itemID +'" field="ma_ck">' + itemID + '</div></a></td>';
			

			var cell1 = row.insertCell(1);
			cell1.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item'+ itemID +'" field="gia3">-</div>';

			var cell2 = row.insertCell(2);
			cell2.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl3">-</div>';
			
			var cell3 = row.insertCell(3);
			cell3.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia2">-</div>';
		
			var cell4 = row.insertCell(4);
			cell4.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl2">-</div>';
			
			var cell5 = row.insertCell(5);
			cell5.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia1">-</div>';
			
			var cell6 = row.insertCell(6);
			cell6.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl1">-</div>';
			
			var cell7 = row.insertCell(7);
			cell7.innerHTML ='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia">-</div>';
			
			var cell8 = row.insertCell(8);
			cell8.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="#kl">-</div>';
			
			var cell9 = row.insertCell(9);
			cell9.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="tong_kl">-</div>';
			
			var cell10 = row.insertCell(10);
			cell10.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia_1">-</div>';
			
			var cell11 = row.insertCell(11);
			cell11.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl_1">-</div>';
			
			var cell12 = row.insertCell(12);
			cell12.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia_2">-</div>';
			
			var cell13 = row.insertCell(13);
			cell13.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl_2">-</div>';
			
			var cell14 = row.insertCell(14);
			cell14.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="gia_3">-</div>';
			
			var cell15 = row.insertCell(15);
			cell15.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="kl_3">-</div>';
			
			var cell16 = row.insertCell(16);
			cell16.innerHTML='<div class="stockname'+suff+'" source="lightstreamer" table="stocks" item="item' + itemID + '" field="time">-</div>';
			
		}	
		  ///(Optional) Block Escape Key	
		  document.onkeydown = checkEscape;
		  document.onkeypress = checkEscape;
		  function checkEscape(e) {
			if(!e) e = event;
			if(e.keyCode == 27) return false;
		  }
		/////////////////////	
		if (location.search.indexOf("fade=ON") > -1) {
			doFade = true;
		}
		//////////////// Event Handlers for the Stock Table
 
		function updateItem(item, updateInfo) {
			if (updateInfo == null) {
			  return;
			}
			// check for a void update, so as to ignore it;
			// the case is possible when testing the Remote version of the Data Adapter
			// in bundle with the Robust version of the Proxy Adapter
			
			if(updateInfo.isValueChanged("tong_kl")&&(updateInfo.getOldValue("tong_kl")!=null)){
				var kl = (updateInfo.getNewValue("tong_kl") - updateInfo.getOldValue("tong_kl"));
				var test = '<div>'+kl.toFixed(2)+'</div>';
				updateInfo.addField("#kl",test);
				
			}
		  } 
		  
			var colValues = new Array();
			for (var x = 0; x <= 255; x++) {
				colValues[colValues.length] = x;
			}
			 new Control.Slider(['selectRed','selectGreen','selectBlue'],'selectColor',{sliderValue :Smile_Ah: 242,158,5],range:$R(0,255),step:1,increment:1,values:colValues,
						onChange:function(v){
							updateColInd(v);
						},
						onSlide:function(v){
							updateColInd(v);
						}});
			
			document.getElementById("selectColor").style.backgroundColor = hotColor;
			document.getElementById("hlc").style.color = hotColor;
			
			function updateColInd(v) {
				var colArr = v.toArray();
				var applyCol = "rgb("+colArr[0]+","+colArr[1]+","+colArr[2]+")";
				document.getElementById("selectColor").style.backgroundColor = applyCol;
				document.getElementById("hlc").style.color = applyCol;
				hotColor = applyCol;
			}	
		  
		  //////////////// Stock Details Popup Management

		  var unique = Math.floor(Math.random() * 1000);

		  function openPopup(row,length) {
		  var Group = new Array(length);
		  for(var i = 0;i<=length;i++){
			Group[i] = "item"+(i+1);
		  }
		  
			var item = Group[row-1];
			var fadeStr = "";
			if (doFade) 
			{
			  fadeStr = "&fade=ON";
			}		
			wdt = window.open("popup.html?item=" + item + fadeStr, "SLDpopup_" + unique + "_" + item, "width=600,height=400,history=0,resizable,status=1,menubar=1");
			wdt.focus();
			return false;
		  }
function ShowStatus(content){
    document.getElementById('dvStatus').innerHTML = content;
};
</script>
 </table>
</body>
</html>
I don't know why only 1 tab have data...

There are 2 pictures



hi,

the important bits are on the index.html file.
Do you see any alert on your pages?
Do you see any javascript error?
Can you see the control requests for your second tab on the server?
Is it possible that the problem is just that you don't ask for the snapshot for the table "a"?
I don't see anything...
But it have control request in server

This is alert from server when i open new tab.
07.Aug.09 15:33:51,036 < INFO> Serving request: /lightstreamer/create_session.js
?LS_phase=8902&LS_polling=true&LS_polling_millis=0&LS_idle_millis=30000&LS_clien
t_version=4.3&LS_adapter=PROXY_HELLOWORLD& from 127.0.0.1:52048
07.Aug.09 15:33:51,040 < INFO> Starting new session: Sef925d8a4184e660T3351039 f
rom 127.0.0.1:52048
07.Aug.09 15:33:51,066 < INFO> Serving request: /lightstreamer/control.html?LS_s
ession=Sef925d8a4184e660T3351039&LS_window=1&LS_win_phase=4&LS_op=add&LS_req_pha
se=61&LS_mode1=MERGE&LS_id1=itemMa&LS_schema1=Items&LS_unique=1 from 127.0.0.1:5
2048
07.Aug.09 15:33:51,068 < INFO> Controlling session: Sef925d8a4184e660T3351039 fr
om 127.0.0.1:52048
07.Aug.09 15:33:51,087 < INFO> Serving request: /lightstreamer/STREAMING_IN_PROG
RESS?LS_session=Sef925d8a4184e660T3351039&LS_phase=8903& from 127.0.0.1:52053
07.Aug.09 15:33:51,088 < INFO> Attaching session: Sef925d8a4184e660T3351039 from
 127.0.0.1:52053
07.Aug.09 15:33:53,076 < INFO> Serving request: /lightstreamer/control.html?LS_s
ession=Sef925d8a4184e660T3351039&LS_window=1&LS_win_phase=4&LS_op=add&LS_req_pha
se=61&LS_mode1=MERGE&LS_id1=itemMa&LS_schema1=Items&LS_unique=2 from 127.0.0.1:5
2048
07.Aug.09 15:33:53,078 < INFO> Controlling session: Sef925d8a4184e660T3351039 fr
om 127.0.0.1:52048
what about the snapshot setting?
If you open the application in a completely different browser instead of opening it in another tab, does it receive data?
what about the snapshot setting?
If you open the application in a completely different browser instead of opening it in another tab, does it receive data?

snapshot settings???
even if I open different browser then it doesn't receive data...same as open new tab.
Probably what happens is that the first client that connects receives the snapshot directly from the adapter. Once the item is subscribed the snapshot is handled by the server that does not send it unless you ask for it. If you don't ask the snapshot to the server it will send only the new updates but not the current status.

to fix your app, where you call

[syntax="JS"]var pushtable = new OverwriteTable(page1, schema1, "MERGE");[/syntax]

you should add
[syntax="JS"]pushtable.setSnapshotRequired(true);[/syntax]


please read the setSnapshotRequired documentation and the General Concepts.pdf file available under the LS_HOME/DOCS-SDKs folder
Thank Mone for your help...I have been fixed this problem.