Server Side:
Export-CacheClusterConfig
Stop-CacheCluster
Import-CacheClusterConfig
Start-CacheCluster
XML changes:
<advanctedProperties>
<transportProperties maxBufferPoolSize="7" maxBufferSize="2000000000"/>
</advanctedProperties>
Client Side:
<dataCacheClient>
<transportProperties maxBufferPoolSize="7" maxBufferSize="2000000000"/>
Blog Archive
Thursday, December 23, 2010
Config Max Buffer Size of App Fabric Caching
Thursday, December 16, 2010
SpliterContainer Grid
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestRSUIFramework
{
public partial class SpliterContainerGrid : UserControl
{
public SpliterContainerGrid()
{
InitializeComponent();
}
#region Properties
public int Rows { get; set; }
public int Columns { get; set; }
BorderStyle _SplitContainerBorderStyle=BorderStyle.None;
public BorderStyle SplitContainerBorderStyle {
set
{
_SplitContainerBorderStyle = value;
}
}
public SortedList<int, SplitContainer> _SpliterContainerColumns;
public SortedList<int, SortedList<int, SplitContainer>> _SpliterContainerGrid;
#endregion
#region basic algorithm
private SortedList<int, SplitContainer> BuildSplitContainerChain(int NumOfSC, Orientation SCOrient)
{
SortedList<int, SplitContainer> list = new SortedList<int, SplitContainer>();
if (NumOfSC == 0)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
sc.Panel2Collapsed = true;
list.Add(0, sc);
return list;
}
for (int i = 0; i < NumOfSC; i++)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
list.Add(i, sc);
}
for (int i = 0; i < NumOfSC - 1; i++)
{
list[i].Panel2.Controls.Add(list[i + 1]);
}
return list;
}
SplitContainer WalkSplitContainerChain(SplitContainer sc, int step)
{
while (step >= 1)
{
SplitContainer sc2 = sc.Panel2.Controls[0] as SplitContainer;
return WalkSplitContainerChain(sc2, step - 1);
}
return sc;
}
#endregion
#region Build Columns
public void BuildSpliterContainerColumns()
{
_SpliterContainerColumns = BuildSplitContainerChain(Columns - 1, Orientation.Vertical);
this.Controls.Add(_SpliterContainerColumns[0]);
for (int i = 0; i < _SpliterContainerColumns.Count; i++)
{
_SpliterContainerColumns[i].SplitterDistance = Width / Columns;
}
}
#endregion
#region Build Grid
public void BuildSpliterContainerGrid()
{
_SpliterContainerGrid = new SortedList<int, SortedList<int, SplitContainer>>();
for (int k = 0; k < _SpliterContainerColumns.Count; k++)
{
_SpliterContainerGrid.Add(k,BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[k].Panel1.Controls.Add(_SpliterContainerGrid[k][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[k][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[k][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
if (Columns >= 2)
{
_SpliterContainerGrid.Add(Columns - 1, BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[Columns - 2].Panel2.Controls.Add(_SpliterContainerGrid[Columns - 1][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[Columns - 1][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[Columns - 1][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
}
#endregion
#region Layout Content
public void PerformLayout( SortedList<int, SortedList<int,UserControl>> contents)
{
SortedList<int, SortedList<int, UserControl>> ucs = contents;
for (int i = 0; i < Rows-1; i++)
{
for (int j = 0; j < Columns-1; j++)
{
_SpliterContainerGrid[j][i].Panel1.Controls.Add(ucs[i][j]);
}
}
for (int j = 0; j < Columns - 1; j++)
{
if (Rows == 1) _SpliterContainerGrid[j][0].Panel1.Controls.Add(ucs[0][j]);
else _SpliterContainerGrid[j][Rows - 2].Panel2.Controls.Add(ucs[Rows-1][j]);
}
for (int i = 0; i < Rows - 1; i++)
{
if (Columns == 1) _SpliterContainerGrid[0][i].Panel1.Controls.Add(ucs[i][0]);
else _SpliterContainerGrid[Columns - 1][i].Panel1.Controls.Add(ucs[i][Columns - 1]);
}
if (Rows == 1) _SpliterContainerGrid[Columns - 1][0].Panel1.Controls.Add(ucs[0][Columns - 1]);
else _SpliterContainerGrid[Columns - 1][Rows - 2].Panel2.Controls.Add(ucs[Rows - 1][Columns - 1]);
}
#endregion
}
}
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace TestRSUIFramework
{
public partial class SpliterContainerGrid : UserControl
{
public SpliterContainerGrid()
{
InitializeComponent();
}
#region Properties
public int Rows { get; set; }
public int Columns { get; set; }
BorderStyle _SplitContainerBorderStyle=BorderStyle.None;
public BorderStyle SplitContainerBorderStyle {
set
{
_SplitContainerBorderStyle = value;
}
}
public SortedList<int, SplitContainer> _SpliterContainerColumns;
public SortedList<int, SortedList<int, SplitContainer>> _SpliterContainerGrid;
#endregion
#region basic algorithm
private SortedList<int, SplitContainer> BuildSplitContainerChain(int NumOfSC, Orientation SCOrient)
{
SortedList<int, SplitContainer> list = new SortedList<int, SplitContainer>();
if (NumOfSC == 0)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
sc.Panel2Collapsed = true;
list.Add(0, sc);
return list;
}
for (int i = 0; i < NumOfSC; i++)
{
SplitContainer sc = new SplitContainer();
sc.Orientation = SCOrient;
sc.BorderStyle = _SplitContainerBorderStyle;
sc.Dock = DockStyle.Fill;
sc.Panel1MinSize = 0;
sc.Panel2MinSize = 0;
list.Add(i, sc);
}
for (int i = 0; i < NumOfSC - 1; i++)
{
list[i].Panel2.Controls.Add(list[i + 1]);
}
return list;
}
SplitContainer WalkSplitContainerChain(SplitContainer sc, int step)
{
while (step >= 1)
{
SplitContainer sc2 = sc.Panel2.Controls[0] as SplitContainer;
return WalkSplitContainerChain(sc2, step - 1);
}
return sc;
}
#endregion
#region Build Columns
public void BuildSpliterContainerColumns()
{
_SpliterContainerColumns = BuildSplitContainerChain(Columns - 1, Orientation.Vertical);
this.Controls.Add(_SpliterContainerColumns[0]);
for (int i = 0; i < _SpliterContainerColumns.Count; i++)
{
_SpliterContainerColumns[i].SplitterDistance = Width / Columns;
}
}
#endregion
#region Build Grid
public void BuildSpliterContainerGrid()
{
_SpliterContainerGrid = new SortedList<int, SortedList<int, SplitContainer>>();
for (int k = 0; k < _SpliterContainerColumns.Count; k++)
{
_SpliterContainerGrid.Add(k,BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[k].Panel1.Controls.Add(_SpliterContainerGrid[k][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[k][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[k][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
if (Columns >= 2)
{
_SpliterContainerGrid.Add(Columns - 1, BuildSplitContainerChain(Rows - 1, Orientation.Horizontal));
_SpliterContainerColumns[Columns - 2].Panel2.Controls.Add(_SpliterContainerGrid[Columns - 1][0]);
for (int i = 0; i < Rows - 1; i++)
{
SplitContainer sc1 = WalkSplitContainerChain(_SpliterContainerGrid[Columns - 1][0], i);
sc1.SplitterDistance = (Height - _SpliterContainerGrid[Columns - 1][0].SplitterWidth * (Rows - 1)) / (Rows);
}
}
}
#endregion
#region Layout Content
public void PerformLayout( SortedList<int, SortedList<int,UserControl>> contents)
{
SortedList<int, SortedList<int, UserControl>> ucs = contents;
for (int i = 0; i < Rows-1; i++)
{
for (int j = 0; j < Columns-1; j++)
{
_SpliterContainerGrid[j][i].Panel1.Controls.Add(ucs[i][j]);
}
}
for (int j = 0; j < Columns - 1; j++)
{
if (Rows == 1) _SpliterContainerGrid[j][0].Panel1.Controls.Add(ucs[0][j]);
else _SpliterContainerGrid[j][Rows - 2].Panel2.Controls.Add(ucs[Rows-1][j]);
}
for (int i = 0; i < Rows - 1; i++)
{
if (Columns == 1) _SpliterContainerGrid[0][i].Panel1.Controls.Add(ucs[i][0]);
else _SpliterContainerGrid[Columns - 1][i].Panel1.Controls.Add(ucs[i][Columns - 1]);
}
if (Rows == 1) _SpliterContainerGrid[Columns - 1][0].Panel1.Controls.Add(ucs[0][Columns - 1]);
else _SpliterContainerGrid[Columns - 1][Rows - 2].Panel2.Controls.Add(ucs[Rows - 1][Columns - 1]);
}
#endregion
}
}
Thursday, November 4, 2010
MaskEdit Code
If no MaskEdit found do the following rough code
private void ultraTextEditor1_KeyUp(object sender, KeyEventArgs e)
{
UltraTextEditor te = (UltraTextEditor)sender;
var q = from _ in
new List() {
Keys.D0, Keys.D1, Keys.D2,Keys.D3, Keys.D4, Keys.D5,
Keys.D6, Keys.D7, Keys.D8,Keys.D9,
Keys.NumPad0, Keys.NumPad1, Keys.NumPad2,Keys.NumPad3, Keys.NumPad4, Keys.NumPad5,
Keys.NumPad6, Keys.NumPad7, Keys.NumPad8,Keys.NumPad9,
Keys.Delete, Keys.Decimal,Keys.Left, Keys.Right,Keys.OemPeriod,Keys.Back,Keys.Home,
}
where e.KeyCode == _
select _;
e.SuppressKeyPress = q.Count() == 0;
if ((e.KeyCode == Keys.Decimal || e.KeyCode == Keys.OemPeriod) && te.Text.Count(s => s == '.') == 1)
{
e.SuppressKeyPress = true;
}
var q1 = from _ in
new List() {
Keys.Left, Keys.Right,Keys.Back,Keys.Home,
}
where e.KeyCode == _
select _;
if (q1.Count() > 0) return;
if (te.Text.Length > 0)
{
string t = te.Text.Replace(",", "").Replace("..", ".");
double Data = Convert.ToDouble(t);
int i = (int)Math.Floor(Data);
string sInt = string.Format("{0:#,#}", i);
string dec = +t.IndexOf('.') >= 0 ? t.Substring(t.IndexOf('.')) : "";
te.Text = "";
te.AppendText(sInt + dec);
}
}
Monday, November 1, 2010
Dynamically Create Event Handler
public static class UIExtensioins
{
public class Inclusion
{
public string ComponentTypeFullName { get; set; }
public string EventName { get; set; }
public string[] SenderPropertyNames { get; set; }
public string[] EventArgsPropertyNames { get; set; }
}
public static void AttachLoggerToUIEvent(this Form f, IContainer components,ListinclusionList)
{
foreach (Inclusion i in inclusionList)
{
foreach (Component c in FindComponent(f, i.ComponentTypeFullName, components))
{
AttacheEventHandler(c, i);
}
}
}
public static IEnumerableFindComponent(Control ownerControl,string typeFullName, IContainer containter)
{
bool topComponentFound = false;
foreach (Component c1 in containter.Components)
if (c1.GetType().FullName == typeFullName)
{
topComponentFound = true;
yield return c1;
}
if (topComponentFound) yield break;
foreach (Control c1 in ownerControl.Controls)
{
if (c1.GetType().FullName == typeFullName) yield return c1;
else foreach (Control c2 in FindComponent(c1, typeFullName, containter))
if (c2.GetType().FullName == typeFullName) yield return c2;
}
}
public static void Log(Inclusion i, object sender, T args) where T : EventArgs
{
string logMsg="";
StringBuilder sb = new StringBuilder();
try
{
foreach (string s in i.SenderPropertyNames)
{
if (s != null)
{
PropertyInfo pi = sender.GetType().GetProperty(s);
object v = pi.GetValue(sender, null);
sb.Append(s + "=" + v + ";");
}
}
foreach (string s in i.EventArgsPropertyNames)
{
if (s != null)
{
string[] parts = s.Split('.');
PropertyInfo pi;
object v = args;
for (int k = 0; k < parts.Length; k++)
{
pi = v.GetType().GetProperty(parts[k]);
v = pi.GetValue(v, null);
}
sb.Append(s + "=" + v + ";");
}
}
string Name = "";
Control c = sender as Control;
if (c != null) Name = c.Parent.Name + ":" + c.Name;
logMsg = Name + " " + i.EventName + " " + sb.ToString();
}
catch (Exception ex)
{
logMsg = ex.Message + " " + ex.InnerException.Message + " " + ex.StackTrace;
}
finally
{
Action act = delegate
{
Console.WriteLine(logMsg);
ILog LOG = LogManager.GetLogger(typeof(TradeEntryMainForm));
LOG.Info(logMsg);
};
act.BeginInvoke(ar => { try { act.EndInvoke(ar); } catch { } }, null);
}
}
private static void AttacheEventHandler(Component c, Inclusion i)
{
foreach (EventInfo ei in c.GetType().GetEvents())
{
if (c.GetType().FullName == i.ComponentTypeFullName && ei.Name == i.EventName)
{
Type eventArgsType = ei.EventHandlerType.GetMethod("Invoke").GetParameters()[1].ParameterType;
MethodInfo mi = typeof(UIExtensioins).GetMethod("Log",
BindingFlags.Static | BindingFlags.Public).MakeGenericMethod(eventArgsType
);
ei.AddEventHandler(c,
Delegate.CreateDelegate(ei.EventHandlerType, i, mi));
}
}
}
}
App Setting Json serialization
public class Inclusion
{
public string ComponentTypeFullName { get; set; }
public string EventName { get; set; }
public string[] SenderPropertyNames { get; set; }
public string[] EventArgsPropertyNames { get; set; }
}
static Listli = new List ()
{
new Inclusion(){
ComponentTypeFullName="Infragistics.Win.Misc.UltraButton",
EventName="Click",
SenderPropertyNames=new string[]{null},
EventArgsPropertyNames=new string[]{null}},
new Inclusion() {
ComponentTypeFullName="Infragistics.Win.UltraWinEditors.UltraComboEditor",
EventName="SelectionChanged",
SenderPropertyNames=new string[]{"Text"},
EventArgsPropertyNames=new string[]{null}},
new Inclusion() {
ComponentTypeFullName="Infragistics.Win.UltraWinToolbars.UltraToolbarsManager",
EventName="ToolClick",
SenderPropertyNames=new string[]{null},
EventArgsPropertyNames=new string[]{"Tool.Key"}},
};
//Read
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(List));
string cd = Settings.Default.Inclusion;
MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(cd));
Listli2 =(List ) ser.ReadObject(ms);
ms.Close();
//write to see the format
Type t = li.GetType();
DataContractJsonSerializer ser2 = new DataContractJsonSerializer(t);
FileStream fs = new FileStream(@"c:\3.txt", FileMode.CreateNew);
ser.WriteObject(fs, li);
fs.Flush();
fs.Close();
Wednesday, September 1, 2010
Simulating Anchro in WPF Form
1. xmal has <Border><Canvas> multiple sub canvas
2. Each sub-canvas hold different UI
3. Top canvas has SizeChanged event and where we transform button (btn1/2),
size datagrid (dg) and listbox (lb)
double dx=0,dy=0;
private void Canvas_SizeChanged(object sender, SizeChangedEventArgs e)
{
this.dg.Width=e.NewSize.Width;
this.lb.Width = e.NewSize.Width;
if (e.PreviousSize.Width != 0)
{
dx += e.NewSize.Width - e.PreviousSize.Width;
dy += e.NewSize.Height - e.PreviousSize.Height;
this.btn1.RenderTransform = new TranslateTransform(dx, dy);
this.btn2.RenderTransform = new TranslateTransform(dx, dy);
this.dg.Height += e.NewSize.Height - e.PreviousSize.Height;
}
}
Friday, July 30, 2010
Generating Large and more decimal Number in SQL
DECLARE @RandomNumber decimal(32,12)
DECLARE @RandomInteger bigint
DECLARE @MaxValue bigint
DECLARE @MinValue bigint
SET @MaxValue = 4000000000
SET @MinValue = 2
SELECT @RandomNumber = RAND()
SELECT @RandomInteger = ((@MaxValue + 1) - @MinValue) * @RandomNumber + @MinValue
--SELECT @RandomNumber as RandomNumber, @RandomInteger as RandomInteger
--select cast(@RandomInteger as varchar(200))+cast(@RandomNumber as varchar(200))
select [dbo].[FormatDecimalCharWithCommaRound](cast(@RandomInteger as varchar(200))+cast(@RandomNumber as varchar(200))
,4),cast(@RandomInteger as varchar(200))+cast(@RandomNumber as varchar(200))
select [dbo].[FormatDecimalCharWithCommaRound](.12345678,2)
Sunday, July 25, 2010
Hosting Http Server in WPF Form
public partial class MainWindow : Window
{
protected HttpListener Listener;
protected bool IsStarted = false;
public event delReceiveWebRequest ReceiveWebRequest;
public void Start(string UrlBase)
{
if (this.IsStarted) return;
if (this.Listener == null)
{
this.Listener = new HttpListener();
}
this.Listener.Prefixes.Add(UrlBase);
this.IsStarted = true;
this.Listener.Start();
IAsyncResult result = this.Listener.BeginGetContext(new AsyncCallback(WebRequestCallback), this.Listener);
}
public void Stop()
{
if (Listener != null)
{
this.Listener.Close();
this.Listener = null;
this.IsStarted = false;
}
}
protected void WebRequestCallback(IAsyncResult result)
{
if (this.Listener == null) return;
HttpListenerContext context = this.Listener.EndGetContext(result);
this.Listener.BeginGetContext(new AsyncCallback(WebRequestCallback), this.Listener);
if (this.ReceiveWebRequest != null)
this.ReceiveWebRequest(context);
this.ProcessRequest(context);
}
string txt="";
protected virtual void ProcessRequest(HttpListenerContext Context)
{
NameValueCollection data = Context.Request.QueryString;
StringBuilder sb = new StringBuilder();
foreach (string s in data.Keys)
sb.Append(s + "=" + data[s]);
txt += sb.ToString() + "\r\n"; ;
HttpListenerResponse response = Context.Response;
string responseString = "<HTML><BODY>ACK</BODY></HTML>";
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(responseString);
response.ContentLength64 = buffer.Length;
System.IO.Stream output = response.OutputStream;
output.Write(buffer, 0, buffer.Length);
output.Close();
}
public MainWindow()
{
InitializeComponent();
// Server = new HttpServer();
}
private void Grid_Loaded(object sender, RoutedEventArgs e)
{
}
// public HttpServer Server = null;
Listd = new List ();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
this.Start("http://127.0.0.1:7777/");
//wkr = new BackgroundWorker();
//wkr.DoWork += new DoWorkEventHandler(StartHttpListener);
//server = new HttpListener();
//server.Prefixes.Add("http://127.0.0.1:7777/");
//server.Start();
//StartHttpListener(null, null);
// wkr.RunWorkerAsync();
listBox1.ItemsSource = d;
}
private void Window_Unloaded(object sender, RoutedEventArgs e)
{
this.Stop();
}
private void button1_Click(object sender, RoutedEventArgs e)
{
textBox1.Text = txt;
}
}
public class TestData
{
public string name { get; set; }
public string value { get; set;}
}
}
Client Code to call
string url="123",userCd="test";
string dataComponentType="dc";
long[] ids= new long[]{1,2,3};
System.Net.WebClient c= new WebClient();
NameValueCollection nc= new NameValueCollection();
nc.Add("url",url);
nc.Add("userCd",userCd);
nc.Add("dataComponentType",dataComponentType);
foreach( long l in ids)
nc.Add("id"+l.ToString(),l.ToString());
c.QueryString=nc;
c.DownloadData("http://127.0.0.1:7777");
Monday, July 5, 2010
MSMQ in Java
One way to access Microsoft MSMQ from java is using http://msmqjava.codeplex.com/
JNI Library
Queue queue= new Queue("DIRECT=OS:ding-j-bos\\jqd3");
String qLabel="Created by jimmy.java";
String body= "Hello, World!";
byte[] correlationId = { 0,2,4,6,8,9 };
Message msg=new Message(body, qLabel, correlationId);
queue.send(msg);
Wednesday, June 9, 2010
Attached Date and Time stamp to DOS file
%date:~10,4%%date:~4,2%%date:~7,2%%time:~1,1%%time:~3,2%%time:~6,2%
Monday, May 31, 2010
F# Parallelism using Agent
// Learn more about F# at http://fsharp.net
namespace JQD
type Downloader() =
let ParallelWorker n f =
MailboxProcessor.Start( fun inbox->
let workers =
Array.init n ( fun i ->MailboxProcessor.Start(f))
let rec loop i = async {
let! msg=inbox.Receive()
workers.[i].Post(msg)
return! loop( (i+1)%n)
} loop 0
)
let agent =
ParallelWorker 8,
(fun input ->
let rec loop() = async {
do! Async.Sleep(5000)
return! loop()
}
loop()
)
member this.DowloadAll()=
ParallelWorker 8, (fun data ->
let rec loop() = async {
do! Async.Sleep(5000)
return! loop()
}
loop()
)
F# barebone Agent
Agent = using message passing to avoid mutating state
type Downloader() =
let agent =
MailboxProcessor.Start(fun inbox ->
let rec loop() = async {
let msg=inbox.Receive()
do! Async.Sleep(5000)
return! loop()
}
loop()
)
member this.DowloadAll()=
while(true) do
agent.Post("test")
Barebone F# Parallel programming
open System
let prog(i)=
async {
printfn "starting..%d" i
do! Async.Sleep(i%5*1000)
printfn "finished..%d" i
}
let ret=
[1..1000]
|> Seq.map ( fun n->prog(n))
|> Async.Parallel
|> Async.StartAsTask
Console.ReadLine() |> ignore
F# Parallelism: Map=>Parallel=>StartAsTask
Key ---- function called in Map must have async { }
namespace JQD
type Downloader() =
let Download n=
async {
let f=System.IO.File.ReadLines("")
return f
}
member this.DA()=
[|1.100|]
|> Seq.map(fun n->Download n)
|> Async.Parallel
|> Async.StartAsTask
F# Map Reduce
let nums =[|1..100|]
let sqr x = x*x
let sumofsqr nums =
let mutable acc=0
for n in nums do
acc<-acc+sqr n
acc
let rec sumofsqrRec nums=
match nums with
| []-> 0
| n::rest -> (sqr n)+ (sumofsqrRec rest )
let rec sumofsqrPipe nums=
nums
|>Seq.map sqr
|>Seq.sum
Sunday, May 30, 2010
F# Asyn
F# is sensitive to indentation and linage (e.g. the calling "Donwload" [next line] ()
// Learn more about F# at http://fsharp.net
namespace JQD
type Downloader() =
let folder="test"
let Download()=
async {
let f=System.IO.File.ReadLines("")
let g="456"
return f
}
member this.DA()=
async {
while(true) do
let n=Download
()
}
|>Async.StartImmediate
Monday, February 8, 2010
Key elements to set up 15022 in CRD
(1) Batch DoExport ISITC Parameters Sender/Receiver
(2) Delivery type, order entry
(3)
C:\..\bin\DoExport -i C:\..\conf\cm_batch_2.ini -e 25 -o --role IP --party BBH --method FILE --out 15022.BBI.--isitc MyINC,BBHCUS3IMyInc,JQD,N,O,INVBUS33
(4) Parties: (Code, BIC, Type)
BBH xxxxx Custodian
(5) Set Receive/Delivery Free Indicator
Settlement Allocation Blotter ( not needed for Batch DoExport)
(7) ASSI (SSB FUT,102)
ACCOUNT Group=BBH 15022
Security Type=FUT
Interested Party=SSB NOTAG22 (special inst)
(8) Export Dir =\\MyInc\Test\Working\IntraDay override by DoExport.
Steps:
-- No need to set up SysParam
-- Set up Party BBH BIC Code, Custodian
-- Account Group: Custodian code=BBH
-- Export Routing Rule ISITC and 15022 Save to File, ISITC param but be override by DoExport
--- Settlement Default Delivery Type=DTC
--- Broker SSI BIC Codes, Determinant InvClass=FUT
--- Account SSI Determinant=AcctG, Inst=Interest Pary=BBH.
--- Post Trade Routing Rule.
Test Trade with Broker with BSSI and Account with ASSI, send ACCT and post_tradea and run DoExport
Related SQL:
-- (0) No need to change System Param, ISITC_INT_PARTY is obsolete in 8222
-- (1) Setup Party: BBH BIC code =INVBUS33 manual update
select BIC_CODE,* from dbo.CSM_ISSUER
--(2) Set up Account Group and attached Accounts
insert cs_fund
(
ACCT_CD,
ACCT_NAME,
ACCT_SHT_NAME,
ACCT_TYP_CD ,
CRRNCY_CD,
ALLOW_BUY ,
ALLOW_SELL ,
ALLOW_NEG_CASH,
MANAGER,
CRD_LOCK ,
ERISA_ELIGIBLE,
GAIN_LOSS_SENSITIVE,
CUSTODIAN_CD,
INACTIVE,
AUTH_NUM,
COMP_BID_REQ,
MAG_IND ,
CFWD_CLOSE_CPARTY_IND ,
CFWD_NEW_CPARTY_IND ,
AUTO_CFWD_IND ,
USE_SETTLE_DATE_BAL_IND,
DM_IND,
DEF_MDL_REM_IND,
MDL_QTY_BASED_IND ,
MULT_MDL_IND ,
MULT_MDL_NORM_IND,
BLOCK_ORDER_IND ,
TEN_MIN_CHECK_IND
)
values
(
'BBH15022',
'BBH 15022 Group',
'BBH15022G',
'G',
'USD',
'Y',
'Y',
'Y',
'TM_DEV',
'N',
'N',
'N',
'BBH',
'N',
0,
'N',
'N',
'N',
'N',
'N',
'N',
'N',
'P',
'N',
'N',
'N',
'Y',
'P'
)
insert CS_FUND_CONFIG values ('BBH15022','EOLC5','G',100.000)
-- (3) Export Routing Rule:
insert TS_ROUTING_DEF (
ROUTING_DEF_ID,
PARTY_ID,
PARTY_TYPE,
PARTY_ROLE,
PACKAGE_TYPE,
METHOD_CD,
FORMAT,
COMMENTS,
EXECUTION_INFO,
IS_DEFAULT,
CRD_LOCK,
DEF_EXP_PARMS,
SENDER_ID,
SENDER_TID,
SENDER_CONTACT,
ACCT_CD ,
INTERFACE_SYST,
EOD_FLAG,
F_IND,
ROUTING_SERVER,
ROUTING_DEF_NAME,
ROUTING_STATUS_LIST ,
RECEIVER_BIC_CD)
values
(1700047561,
'BBH',
'CSM_ISSUER',
'CUST',
'EXPORT',
'FILE',
25,
'Test by JQD',
'15022.BBH.JQD.',
'Y',
'N',
'ISITC:MYIKK,BBHCUS3IGMO,JQD,N,1,INVBUS33,st:ACCT,st:CNCLACCT',
'MYIAA',
'BBHCUS3IGMO',
'JQD',
NULL,
NULL,
'N',
'N',
NULL,
'BBH 15022',
'ACCT,CNCLACCT',
'INVBUS33'
)
--(4) Set Up Settlement Default --Manual process
Exch Cnty=USA Inv Class=FUT
Delivery= DTC
-- (5) Broker SSI
insert cs_settle_inst values
(1700046932,NULL,NULL,NULL,NULL,NULL,NULL,'Name',
'Address',NULL,'BARCKK5GXXX',NULL,NULL,'MYI',NULL,'MYI',
'MYI',NULL,NULL,NULL,'SSI',
NULL,'BCYD DEBT','BARCKK5GXXX',1700046932
,NULL,NULL,NULL,NULL, NULL,NULL, NULL, NULL,'MYI',
'MYI', NULL,NULL,NULL,NULL,NULL)
INSERT ts_dterm values(1700046932,'BSI','BCYD',3.000, NULL,'Y','N',NULL)
-- (6) Account SSI
insert TS_DETERM values
(1700046916,'ASI','BBH 15022',1.000,NULL,'Y','N',NULL)
insert TS_DETERM_VALUE values
(1700046916,100063,'BBH15022','EQ',NULL)
insert TS_FUND_SETTINST values
(1700046918,'IP','BBH','AcctNum',NULL
, NULL , NULL, NULL,'ABANum','INVBUS33')
--(7) Set up Post-Trade Rounting -- Manual
SI Enrichment = Broker and Account Instruction Attached
Subscribe to:
Posts (Atom)