If you could post your example (is the datasource public?) then we can try
to analyze the situation...

- VizBoy.

On Wed, Feb 4, 2009 at 6:33 PM, craigdataqa <[email protected]> wrote:

>
> Looks like we can rule out the GWT api being the problem.  I quickly
> threw together a JS version of the chart and it still doesn't work.
>
> The JS version exhibits the same behavior as before.  The data source
> query and chart drawing have no problems the first time but any
> subsequent requests behave as though they time out.
>
> I noticed one person had an issue with headers being sent after the
> response, but my setup doesn't have this issue.
>
> --Craig
>
>
> On Jan 22, 10:35 am, "Eric Z. Ayers" <[email protected]> wrote:
> > It seems like the GWT code involved in this problem is very minimal.
> > If you want to eliminate the GWT component, I would suggest you write
> > a very small JavaScript driver for your class and see if your second
> > query works.
> >
> > -Eric.
> >
> > On Jan 21, 11:30 am, Craig Schroeder <[email protected]> wrote:
> >
> > > Hey VizBoy,
> > > Not sure if you were referring to me here but I am going to paste in my
> code
> > > below...
> >
> > > Hopefully someone can help me figure out if this is an issue in GWT or
> the
> > > GWT API, or some environmental issue on my end.  I don't see any errors
> in
> > > application logic or system responses so I'm not sure why one request
> works
> > > and then subsequent ones don't.
> >
> > > Thanks,
> > > Craig
> >
> > > ##########python service#############
> > > import gviz_api, mmap, re, os, timeit
> > > from BaseHTTPServer import BaseHTTPRequestHandler, HTTPServer
> >
> > > def getResults(args):
> > >     fname = "xxxxxxxxxxxx-" + args[0]
> > >     fname = os.path.join("../audit", fname)
> > >     try:
> > >         fileobj = open(fname)
> > >     except:
> > >         return "file not found"
> > >     queryID = args[1]
> > >     try:
> > >         filters = args[2:]
> > >     except:
> > >         pass
> > >     flag = False
> >
> > >     if len(filters) == 0:
> > >         try:
> > >             records[args[0]][args[1]]
> > >             description = {("key", "string"):("value", "number")}
> > >             data = records[args[0]][args[1]]
> > >             data_table = gviz_api.DataTable(description)
> > >             data_table.LoadData(data)
> > >             print
> > >
> data_table.ToJSonResponse(columns_order=("key","value"),order_by=reports[ar
> gs[1]]["sort"])
> > >             return
> > >
> data_table.ToJSonResponse(columns_order=("key","value"),order_by=reports[ar
> gs[1]]["sort"])
> > >         except KeyError:
> > >             print "KeyError"
> > >     if len(filters) == 0:
> > >         filemap = mmap.mmap(fileobj.fileno(), os.path.getsize(fname) ,
> > > access=mmap.ACCESS_READ)
> > >     else:
> > >         print "starting file filtering"
> > >         fileString = ""
> > >         fileList = []
> > >         c=0
> > >         for line in fileobj:
> > >             c+=1
> > >             if c%1000 == 0:
> > >                 print c
> > >             for f in filters:
> > >                 if flag:
> > >                     break
> > >                 if f not in line:
> > >                     flag = True
> > >             if not flag:
> > >                 fileList.append(line)
> > >             flag = False
> > >         print "ending file filtering"
> > >         fileString = ''.join(fileList)
> > >     pat = re.compile(reports[queryID]["regex"])
> > >     count = {}
> > >     if len(filters) == 0:
> > >         for m in pat.findall(filemap):
> > >             try:
> > >                 count[m] +=1
> > >             except KeyError:
> > >                 count[m] = 1
> > >     else:
> > >         for m in pat.findall(fileString):
> > >             try:
> > >                 count[m] +=1
> > >             except KeyError:
> > >                 count[m] = 1
> > >     if len(filters) == 0:
> > >         try:
> > >             records[args[0]][args[1]] = count
> > >         except:
> > >             records[args[0]] = {}
> > >             records[args[0]][args[1]] = count
> > >     print "just before returning"
> > >     try:
> > >         filemap.close()
> > >     except:
> > >         pass
> > >     fileString = ""
> > >     fileobj.close()
> > >     description = {("key", "string"):("value", "number")}
> > >     if len(filters) == 0:
> > >         data = records[args[0]][args[1]]
> > >     else:
> > >         data = count
> > >     data_table = gviz_api.DataTable(description)
> > >     data_table.LoadData(data)
> > >     print
> > >
> data_table.ToJSonResponse(columns_order=("key","value"),order_by=reports[ar
> gs[1]]["sort"])
> > >     return
> > >
> data_table.ToJSonResponse(columns_order=("key","value"),order_by=reports[ar
> gs[1]]["sort"])
> >
> > > class MyHandler(BaseHTTPRequestHandler):
> >
> > >     def do_GET(self):
> > >         if self.path.find("?") != -1:
> > >             queryString = self.path.split("?")[1]
> > >             queryArgs =
> > > queryString.split("tq=")[1].split("&")[0].split("%40")
> > >         urlargs = self.path.split("?")[0].split("/")
> > >         print urlargs
> > >         self.send_response(200)
> > >         self.send_header('Content-type',    'text/html')
> > >         self.end_headers()
> > >         if self.path == "/":
> > >             self.wfile.write("Don't know what you're trying to do")
> > >             return
> > >         if urlargs[1] == "gwt":
> > >             if urlargs[2] == "menu":
> > >                 self.wfile.write()
> > >             else:
> > >                 self.wfile.write(getResults(queryArgs))
> > >             self.wfile.write(open(xxxxxxxx).read())
> > >         return
> > > reports = {}
> > > reports["sessioncount"] = {}
> > > reports["sessioncount"]["description"] = "Counts Product Session
> Starts"
> > > reports["sessioncount"]["regex"] = r"ProductSessionStartAudit"
> > > reports["sessioncount"]["sort"] = "value"
> >
> > > reports["1pm"] = {}
> > > reports["1pm"]["description"] = "Counts all activities during the 1pm
> hour"
> > > reports["1pm"]["regex"] = r"(?<=\|\|\d\d/\d\d/\d\d\d\d )13:\d\d"
> > > reports["1pm"]["sort"] = "key"
> >
> > > reports["top-locids"] = {}
> > > reports["top-locids"]["description"] = "Ranks locids"
> > > reports["top-locids"]["regex"] =
> r"(?<=-)[-A-Za-z0-9_]*(?=-[^-|]{30,32})"
> > > reports["top-locids"]["sort"] = "value"
> >
> > > records = {}
> >
> > > def main():
> > >     try:
> > >         PORT = 8585
> > >         server = HTTPServer(('', PORT), MyHandler)
> > >         print 'started server on %s...' % PORT
> >
> > >         server.serve_forever()
> >
> > >     except (KeyboardInterrupt, SystemExit):
> > >         print "closing..."
> > >         server.socket.close()
> >
> > > if __name__ == '__main__':
> > >     main()
> > > ###################################
> >
> > > ##########dashboard.java############
> > > package com.xxxxxxx.client;
> >
> > > import com.google.gwt.core.client.EntryPoint;
> > > import com.google.gwt.user.client.Window;
> > > import com.google.gwt.user.client.ui.ChangeListener;
> > > import com.google.gwt.user.client.ui.ClickListener;
> > > import com.google.gwt.user.client.ui.HorizontalPanel;
> > > import com.google.gwt.user.client.ui.ListBox;
> > > import com.google.gwt.user.client.ui.Panel;
> > > import com.google.gwt.user.client.ui.RootPanel;
> > > import com.google.gwt.user.client.ui.Widget;
> > > import com.google.gwt.visualization.client.AjaxLoader;
> > > import com.google.gwt.visualization.client.DataTable;
> > > import com.google.gwt.visualization.client.Query;
> > > import com.google.gwt.visualization.client.QueryResponse;
> > > import com.google.gwt.visualization.client.Query.Callback;
> > > import com.google.gwt.visualization.client.visualizations.ColumnChart;
> > > import com.google.gwt.visualization.client.visualizations.Table;
> >
> > > import org.gwtwidgets.client.ui.cal.CalendarDate;
> > > import org.gwtwidgets.client.ui.cal.SimpleCalendar;
> >
> > > public class dashboard implements EntryPoint {
> > > public static class vizData {
> > >     public static String vizDate = "";
> > >     public static String vizQuery = "";
> > >     public static int vizID;
> > >     public static ColumnChart col;
> > >     public static Table tab;
> > >     public static int count = 0;}
> >
> > >   public void onModuleLoad() {
> > >     // Create a callback to be called when the visualization API
> > >     // has been loaded.
> > >     Runnable onLoadCallback = new Runnable() {
> > >       public void run() {
> > >         Panel panel = RootPanel.get();
> > >         vizData.col = new ColumnChart();
> > >         vizData.tab = new Table();
> > >         panel.add(vizData.col);
> > >         panel.add(vizData.tab);
> > >       }
> > >     };
> >
> > >     Panel panel = RootPanel.get();
> >
> > >     HorizontalPanel top = new HorizontalPanel();
> >
> > >     SimpleCalendar cal = new SimpleCalendar();
> > >     cal.addClickListener(new ClickListener() {
> > >         @SuppressWarnings("deprecation")
> > > public void onClick(Widget sender) {
> > >          CalendarDate date = ((SimpleCalendar)
> sender).getDateSelected();
> > >          int y = date.getDate().getYear() + 1900;
> > >          int m = date.getDate().getMonth() + 1;
> > >          int d = date.getDate().getDate();
> > >          String mm;
> > >          String dd;
> > >          if (m < 10) {
> > >          mm = "0" + Integer.toString(m);
> > >          }
> > >          else {
> > >          mm = Integer.toString(m);
> > >          }
> > >          if (d < 10) {
> > >          dd = "0" + Integer.toString(d);
> > >          }
> > >          else {
> > >          dd = Integer.toString(d);
> > >          }
> > >             vizData.vizDate = Integer.toString(y) + "-" + mm + "-" +
> dd;
> > >             updateData();}
> >
> > >      });
> > >     top.add(cal);
> >
> > >     ListBox query = new ListBox();
> > >     query.setTitle("Select a base query");
> > >     query.addItem("sessioncount");
> > >     vizData.vizQuery = "sessioncount";
> > >     query.addItem("1pm");
> > >     query.addChangeListener(new ChangeListener() {
> > > public void onChange(Widget sender) {
> > > vizData.vizQuery = ((ListBox) sender).getValue(((ListBox)
> > > sender).getSelectedIndex());
> > > if (vizData.vizDate != ""){
> > > updateData();}
> > > }
> >
> > >     });
> > >     top.add(query);
> >
> > >     panel.add(top);
> >
> > >     // Load the visualization api, passing the onLoadCallback to be
> called
> > >     // when loading is done.
> > >     AjaxLoader.loadVisualizationApi(onLoadCallback,
> ColumnChart.PACKAGE,
> > > Table.PACKAGE);
> > >   }
> >
> > >   private ColumnChart.Options colOptions(String title) {
> > >     ColumnChart.Options options = ColumnChart.Options.create();
> >
> > ...
> >
> > read more »
> >
>

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google Visualization API" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-visualization-api?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to