Количество транзакций - PullRequest
       1

Количество транзакций

3 голосов
/ 26 октября 2010

Мне нужно несколько транзакций. Но Бада позволяет мне делать только одну транзакцию. Как увеличить количество транзакций? Код, который я использую:

result HttpClient::TestHttpGet(Osp::Base::String link1)

{
int r1;
result r = E_SUCCESS;
HttpTransaction* pTransaction = null;
HttpRequest* pRequest = null;
String hostAddr(link1);

 if(__pSession == null)
 {
__pSession = new HttpSession();

r = __pSession->Construct(NET_HTTP_SESSION_MODE_NORMAL, null, hostAddr, null);

if (IsFailed(r))

 goto CATCH;

}


pTransaction = __pSession->OpenTransactionN();
r1=__pSession->GetActiveTransactionCount();
AppLog("Total no of transaction:%d",r);
if (null == pTransaction)
{
 r = GetLastResult();
 goto CATCH;
 }

r = pTransaction->AddHttpTransactionListener(*this);

if (IsFailed(r))

 goto CATCH;


 pRequest = const_cast<HttpRequest*>(pTransaction->GetRequest());

if(pRequest == null)
{
r = GetLastResult();

 goto CATCH;

}

r = pRequest->SetUri(link1);

if(IsFailed(r))

goto CATCH;

r = pRequest->SetMethod(NET_HTTP_METHOD_GET);

if(IsFailed(r))

 goto CATCH;

r = pTransaction->Submit();

if(IsFailed(r))

 goto CATCH;

return r;

CATCH:

 return r;
 }

Ответы [ 2 ]

3 голосов
/ 29 октября 2010

Вы можете иметь до шести одновременных сессий (HttpSession).Каждый сеанс может начинать несколько транзакций (HttpTransaction), но только последовательно.

Мой совет: используйте несколько сеансов, если вам нужно подключиться к разным хостам.Но для каждого хоста используйте только одну транзакцию за раз.Вы не будете работать быстрее, если попытаетесь установить несколько соединений с одним и тем же хостом (помните, что вы используете телефон с ограниченной пропускной способностью сети, которая должна использоваться несколькими параллельными соединениями).

0 голосов
/ 16 марта 2011

вы также можете попробовать NET_HTTP_SESSION_MODE_PIPELINE для конвейеризации транзакций в течение сеанса.

...